您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CreatePopupMenu函数代码示例

51自学网 2021-06-01 20:14:57
  C++
这篇教程C++ CreatePopupMenu函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CreatePopupMenu函数的典型用法代码示例。如果您正苦于以下问题:C++ CreatePopupMenu函数的具体用法?C++ CreatePopupMenu怎么用?C++ CreatePopupMenu使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CreatePopupMenu函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: BuildDownloadArray

int FCollectionMenu::ShowContextMenu(HWND hWndParent, const FArray<FString> &aVids){	FArray<FDownload> aVideos; 	size_t videoCount = BuildDownloadArray(aVideos, aVids); 	if (videoCount == 0)		return 0; 	vidtype videoID = aVideos[0].m_Detail.m_VideoID; 	FDownload &pVideo = aVideos[0];	HMENU hmenu = CreatePopupMenu();	int i = 0; 	if (videoCount == 1 )	{		if (pVideo.m_dwFlags & FLAG_DOWNLOAD_FINISHED)			_InsertMenuItem(hmenu, i++, miPlay, "Play");		if (!pVideo.IsDownloadFinished())		{			if (pVideo.m_dwFlags & FLAG_DOWNLOAD_QUEUED )				_InsertMenuItem(hmenu, i++, miStart, "Start Download");			else				_InsertMenuItem(hmenu, i++, miSuspend, pVideo.IsPaused() ? "Resume Download" : "Suspend Download");		}		else		{			if (pVideo.IsDownloadableStream())				_InsertMenuItem(hmenu, i++, miStart, "Download Video");		}		_InsertMenuItem(hmenu, i++, miInfo, "Info...");		_InsertMenuItem(hmenu, i++, miRename, "Rename");	}	_InsertMenuItem(hmenu, i++, miDelete, "Delete");	_InsertMenuSeparator(hmenu, i++); 	FLabels aAllLabels; 	FLabels aCommonLabels; 	BuildLabelsUnion(aVideos, aAllLabels, aCommonLabels); 	HMENU hSub = CreateLabelsSubmenu(aCommonLabels, 100); 	_InsertSubMenu(hmenu, i++, "Label", hSub); 	if (videoCount == 1)		_InsertMenuItem(hmenu, i++, miRevealFiles, "Reveal Files"); 	BOOL bShowReveal = g_AppSettings.m_LogEnabled; #ifdef _DEBUG	bShowReveal = TRUE; #endif	if (bShowReveal)		_InsertMenuItem(hmenu, i++, miRevealMTTI, "Reveal MTTI");	POINT pt;	GetCursorPos(&pt);	int nCmd = TrackPopupMenu(hmenu, TPM_RETURNCMD, pt.x, pt.y, 0, hWndParent, NULL);	if (nCmd < 100)	{		switch(nCmd)		{		case miPlay:			g_MainFrame->PlayMediaFile(videoID); 			break; 		case miRename:			{				FString StrNewName = ShowRenameDlg(hWndParent, pVideo.m_Detail.m_VideoName);				if (StrNewName != "")				{					pVideo.m_Detail.m_VideoName = StrNewName;					g_Objects._DownloadManager.SaveVideoDetails(pVideo.GetVideoID(), pVideo.m_Detail); 				}			}			break;		case miSuspend:			for (size_t k = 0; k < aVideos.GetCount(); k++)			{				FDownload& pVideo = aVideos[k];				if (!pVideo.IsPaused())					g_Objects._DownloadManager.PauseDownload(videoID); 				else					g_Objects._DownloadManager.ResumeDownload(videoID);			}			break; 		case miDelete:			for (size_t k = 0; k < aVideos.GetCount(); k++)			{				g_MainFrame->RemoveVideo(aVideos[k].m_Detail.m_VideoID);				//g_Objects._DownloadManager.RemoveDownload(aVideos[k].m_Detail.m_VideoID); 			}			break; //.........这里部分代码省略.........
开发者ID:codeboost,项目名称:libertv,代码行数:101,


示例2: OnFavTreeContextMenu

static void OnFavTreeContextMenu(WindowInfo* win, PointI pt) {    TVITEM item;    if (pt.x != -1 || pt.y != -1) {        TVHITTESTINFO ht = {0};        ht.pt.x = pt.x;        ht.pt.y = pt.y;        MapWindowPoints(HWND_DESKTOP, win->hwndFavTree, &ht.pt, 1);        TreeView_HitTest(win->hwndFavTree, &ht);        if ((ht.flags & TVHT_ONITEM) == 0)            return; // only display menu if over a node in tree        TreeView_SelectItem(win->hwndFavTree, ht.hItem);        item.hItem = ht.hItem;    } else {        item.hItem = TreeView_GetSelection(win->hwndFavTree);        if (!item.hItem) {            return;        }        RECT rcItem;        if (TreeView_GetItemRect(win->hwndFavTree, item.hItem, &rcItem, TRUE)) {            MapWindowPoints(win->hwndFavTree, HWND_DESKTOP, (POINT*)&rcItem, 2);            pt.x = rcItem.left;            pt.y = rcItem.bottom;        } else {            WindowRect rc(win->hwndFavTree);            pt = rc.TL();        }    }    item.mask = TVIF_PARAM;    TreeView_GetItem(win->hwndFavTree, &item);    Favorite* toDelete = (Favorite*)item.lParam;    HMENU popup = BuildMenuFromMenuDef(menuDefFavContext, dimof(menuDefFavContext), CreatePopupMenu());    INT cmd = TrackPopupMenu(popup, TPM_RETURNCMD | TPM_RIGHTBUTTON, pt.x, pt.y, 0, win->hwndFavTree, nullptr);    DestroyMenu(popup);    if (IDM_FAV_DEL == cmd) {        RememberFavTreeExpansionStateForAllWindows();        if (toDelete) {            DisplayState* f = gFavorites.GetByFavorite(toDelete);            gFavorites.Remove(f->filePath, toDelete->pageNo);        } else {            // toDelete == nullptr => this is a parent node signifying all bookmarks in a file            item.hItem = TreeView_GetChild(win->hwndFavTree, item.hItem);            item.mask = TVIF_PARAM;            TreeView_GetItem(win->hwndFavTree, &item);            toDelete = (Favorite*)item.lParam;            DisplayState* f = gFavorites.GetByFavorite(toDelete);            gFavorites.RemoveAllForFile(f->filePath);        }        UpdateFavoritesTreeForAllWindows();        prefs::Save();        // TODO: it would be nice to have a system for undo-ing things, like in Gmail,        // so that we can do destructive operations without asking for permission via        // invasive model dialog boxes but also allow reverting them if were done        // by mistake    }}
开发者ID:wyrover,项目名称:sumatrapdf,代码行数:61,


示例3: PopupMenu

void CPsTree::PopupMenu(){	HMENU hPopup;	MENUITEMINFO mii;	TVHITTESTINFO hti;	TVITEM tvi;	POINT pt;	int iItem, i;	// init popup menu	if (!(hPopup = CreatePopupMenu()))		return;	ZeroMemory(&mii, sizeof(MENUITEMINFO));	mii.cbSize = sizeof(mii);	mii.fMask = MIIM_STRING|MIIM_ID;	// get cursor postion	GetCursorPos(&pt);	hti.pt = pt;	ScreenToClient(_hWndTree, &hti.pt);	tvi.mask = TVIF_PARAM|TVIF_CHILDREN;	// find treeitem under cursor	TreeView_HitTest(_hWndTree, &hti);	if (hti.flags & (TVHT_ONITEM|TVHT_ONITEMRIGHT)) {		tvi.hItem = hti.hItem;		TreeView_GetItem(_hWndTree, &tvi);		if (!db_get_b(NULL, MODNAME, SET_PROPSHEET_READONLYLABEL, FALSE)) {			mii.dwTypeData = TranslateT("Rename Item");			mii.wID = 32001;			InsertMenuItem(hPopup, 0, FALSE, &mii);		}				// do not allow hiding groups		if (tvi.cChildren) {			mii.fMask |= MIIM_STATE;			mii.fState = MFS_DISABLED;		}		mii.dwTypeData = TranslateT("Hide Item");		mii.wID = 32000;		InsertMenuItem(hPopup, 0, FALSE, &mii);	}	else {		// add hidden items to menu		mii.wID = 0;		for (i = 0; i < _numItems; i++) {			if (!_pItems[i]->Hti()) {				mii.dwTypeData = _pItems[i]->Label();				mii.wID = 100 + i;				InsertMenuItem(hPopup, 0, FALSE, &mii);			}		}		// add headline		if (mii.wID > 0) {			mii.fMask |= MIIM_STATE;			mii.fState = MFS_DISABLED;			mii.dwTypeData = TranslateT("Show Items:");			mii.wID = 0;			InsertMenuItem(hPopup, 0, TRUE, &mii);			mii.fMask |= MIIM_FTYPE;			mii.fType = MFT_SEPARATOR;			InsertMenuItem(hPopup, 1, TRUE, &mii);			InsertMenuItem(hPopup, ++i, TRUE, &mii);		}		mii.fMask &= ~(MIIM_FTYPE|MIIM_STATE);		mii.dwTypeData = TranslateT("Reset to defaults");		mii.wID = 32004;		InsertMenuItem(hPopup, ++i, TRUE, &mii);	}	// show the popup menu	iItem = TrackPopupMenu(hPopup, TPM_RETURNCMD, pt.x, pt.y, 0, _hWndTree, NULL);	DestroyMenu(hPopup);		switch (iItem) {		// hide the item		case 32000:			HideItem(tvi.lParam);			break;		// rename the item		case 32001:			BeginLabelEdit(tvi.hItem);			break;		// reset current tree		case 32004:			DBResetState();			break;		// show a hidden item		default:			if ((iItem -= 100) >= 0 && ShowItem(iItem, NULL))				AddFlags(PSTVF_STATE_CHANGED|PSTVF_POS_CHANGED);			break;	}}
开发者ID:0xmono,项目名称:miranda-ng,代码行数:94,


示例4: WinMain

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,                   LPSTR lpCmdLine, int nCmdShow){	char *pb;	char *pe;	WNDCLASS wc;	HWND hWnd;	HMENU hMainMenu;	MSG msg;	for (pb = lpCmdLine; *pb == ' ' || *pb == '/t'; pb++);	for (pe = pb; *pe != '/0'; pe++);	while (--pe > pb && (*pe == ' ' || *pe == '/t'));	/* Now pb and pe point at respectively the first and last	   non-blank character in lpCmdLine. If pb > pe then the command line	   is blank. */	if (*pb == '"' && *pe == '"')		pb++;	else		pe++;	*pe = '/0';	/* Now pb contains the filename, if any, specified on the command line. */	hWnd = FindWindow(WND_CLASS_NAME, NULL);	if (hWnd != NULL) {		/* as instance of WASAP is already running */		if (*pb != '/0') {			/* pass the filename */			COPYDATASTRUCT cds = { 'O', (DWORD) (pe + 1 - pb), pb };			SendMessage(hWnd, WM_COPYDATA, (WPARAM) NULL, (LPARAM) &cds);		}		else {			/* bring the open dialog to top */			HWND hChild = GetLastActivePopup(hWnd);			if (hChild != hWnd)				SetForegroundWindow(hChild);		}		return 0;	}	wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;	wc.lpfnWndProc = MainWndProc;	wc.cbClsExtra = 0;	wc.cbWndExtra = 0;	wc.hInstance = hInstance;	wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APP));	wc.hCursor = LoadCursor(NULL, IDC_ARROW);	wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);	wc.lpszMenuName = NULL;	wc.lpszClassName = WND_CLASS_NAME;	RegisterClass(&wc);	hWnd = CreateWindow(WND_CLASS_NAME,		APP_TITLE,		WS_OVERLAPPEDWINDOW,		CW_USEDEFAULT,		CW_USEDEFAULT,		CW_USEDEFAULT,		CW_USEDEFAULT,		NULL,		NULL,		hInstance,		NULL	);	hStopIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_STOP));	hPlayIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_PLAY));	hMainMenu = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_TRAYMENU));	hTrayMenu = GetSubMenu(hMainMenu, 0);	hSongMenu = CreatePopupMenu();	InsertMenu(hTrayMenu, 1, MF_BYPOSITION | MF_ENABLED | MF_STRING | MF_POPUP,	           (UINT_PTR) hSongMenu, "So&ng");	hQualityMenu = GetSubMenu(hTrayMenu, 3);	SetMenuDefaultItem(hTrayMenu, 0, TRUE);	Tray_Add(hWnd, hStopIcon);	SetQuality(hWnd, use_16bit, quality);	if (*pb != '/0') {		memcpy(strFile, pb, pe + 1 - pb);		LoadFile(hWnd);	}	else		SelectAndLoadFile(hWnd);	while (GetMessage(&msg, NULL, 0, 0)) {		TranslateMessage(&msg);		DispatchMessage(&msg);	}	WaveOut_Close();	Tray_Delete(hWnd);	DestroyMenu(hMainMenu);	return 0;}
开发者ID:Erikhht,项目名称:TCPMP,代码行数:91,


示例5: WndProc

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){	switch(msg)	{#if MENU_2	case WM_CREATE:		{			HMENU hMenu, hSubMenu;			HICON hIcon, hIconSm;						hMenu = CreateMenu();			//create submenu			hSubMenu = CreatePopupMenu();			AppendMenu(hSubMenu, MF_STRING, ID_FILE_EXIT, "E&xit");			AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&File");			hSubMenu = CreatePopupMenu();			AppendMenu(hSubMenu,MF_STRING,ID_STUFF_GO, "&Go");			AppendMenu(hMenu,MF_STRING | MF_POPUP, (UINT)hSubMenu, "&stuff");			SetMenu(hwnd,hMenu);						hIcon = (HICON)LoadImage(NULL, "menu_two.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE);			if(hIcon)	//success				SendMessage(hwnd,WM_SETICON,ICON_BIG,(LPARAM)hIcon);			else	//fail				MessageBox(hwnd,"Could not load large icon","Error",MB_OK | MB_ICONERROR);			hIconSm = (HICON)LoadImage(NULL, "menu_two.ico", IMAGE_ICON,16,16,LR_LOADFROMFILE);						if(hIconSm)	//success				SendMessage(hwnd,WM_SETICON,ICON_SMALL,(LPARAM)hIconSm);			else				MessageBox(hwnd,"Could not load small icon","Error", MB_OK | MB_ICONERROR);					}		break;#endif	case WM_COMMAND:		switch(LOWORD(wParam))		{		case ID_HELP_ABOUT:			{				int ret = DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_ABOUT),hwnd,AboutDlgProc);				if(ret == IDOK)					MessageBox(hwnd,"Dialog exited with OK","Notice",MB_OK | MB_ICONINFORMATION);				else if(ret == IDCANCEL)					MessageBox(hwnd,"Dialog exited with Cancel","Notice", MB_OK | MB_ICONINFORMATION);				else if(ret == -1)					MessageBox(hwnd,"Dialog Failed!","Error",MB_OK | MB_ICONEXCLAMATION);								}			break;		case ID_FILE_EXIT:			PostMessage(hwnd,WM_CLOSE,0,0);			break;		case ID_STUFF_GO:			MessageBox(hwnd,"I go do something.","Do it",MB_OK);			break;		}		break;	case WM_LBUTTONDOWN:		{			char szFileName[MAX_PATH];			HINSTANCE hInstance = GetModuleHandle(NULL);		//return a handle to the file used to																//create a calling process			GetModuleFileName(hInstance, szFileName, MAX_PATH);		//a pointer to a buffer that recives the path and file name																	// of the specidied module			MessageBox(hwnd, szFileName, "This program is:", MB_OK | MB_ICONINFORMATION);			 			 break;		}	case WM_CLOSE:		DestroyWindow(hwnd);		break;	case WM_DESTROY:		PostQuitMessage(0);		break;	default:		return DefWindowProc(hwnd,msg,wParam,lParam);		//most likely does nothing	}	return 0;}
开发者ID:pkhruasu,项目名称:winform32,代码行数:80,


示例6: switch

//.........这里部分代码省略.........				if (set)				{					get_host()->override_status_text_create(p_status_override);					if (p_status_override.is_valid())					{						p_status_override->override_text(desc);					}				}				m_status_override = p_status_override;			}		}	}	break;	case WM_CONTEXTMENU:	{		uie::window_ptr p_this_temp = this;		if ((HWND)wp == wnd_header)		{			POINT pt = { (short)LOWORD(lp), (short)HIWORD(lp) };			POINT temp;			temp.x = pt.x;			temp.y = pt.y;			ScreenToClient(wnd_header, &temp);			HDHITTESTINFO hittest;			hittest.pt.x = temp.x;			hittest.pt.y = temp.y;			uSendMessage(wnd_header, HDM_HITTEST, 0, (LPARAM)&hittest);			enum { IDM_ASC = 1, IDM_DES = 2, IDM_SEL_ASC, IDM_SEL_DES, IDM_AUTOSIZE, IDM_PREFS, IDM_EDIT_COLUMN, IDM_CUSTOM_BASE };			HMENU menu = CreatePopupMenu();			HMENU selection_menu = CreatePopupMenu();			if (!(hittest.flags & HHT_NOWHERE))			{				uAppendMenu(menu, (MF_STRING), IDM_ASC, "&Sort ascending");				uAppendMenu(menu, (MF_STRING), IDM_DES, "Sort &descending");				uAppendMenu(selection_menu, (MF_STRING), IDM_SEL_ASC, "Sort a&scending");				uAppendMenu(selection_menu, (MF_STRING), IDM_SEL_DES, "Sort d&escending");				uAppendMenu(menu, MF_STRING | MF_POPUP, (UINT)selection_menu, "Se&lection");				uAppendMenu(menu, (MF_SEPARATOR), 0, "");				uAppendMenu(menu, (MF_STRING), IDM_EDIT_COLUMN, "&Edit this column");				uAppendMenu(menu, (MF_SEPARATOR), 0, "");				uAppendMenu(menu, (MF_STRING | (cfg_nohscroll ? MF_CHECKED : MF_UNCHECKED)), IDM_AUTOSIZE, "&Auto-sizing columns");				uAppendMenu(menu, (MF_STRING), IDM_PREFS, "&Preferences");				uAppendMenu(menu, (MF_SEPARATOR), 0, "");				pfc::string8 playlist_name;				static_api_ptr_t<playlist_manager> playlist_api;				playlist_api->activeplaylist_get_name(playlist_name);				pfc::string8_fast_aggressive filter, name;				int s, e = columns.get_count();				for (s = 0; s<e; s++)				{					bool add = false;					switch (columns[s]->filter_type)					{					case FILTER_NONE:					{						add = true;						break;					}
开发者ID:9060,项目名称:columns_ui,代码行数:67,


示例7: switch

LRESULT album_list_window::on_message(HWND wnd, UINT msg, WPARAM wp, LPARAM lp){	switch (msg)	{	case WM_CREATE:	{		list_wnd.add_item(this);		initialised = true;		modeless_dialog_manager::g_add(wnd);		create_tree();		create_filter();		if (cfg_populate) refresh_tree();		static_api_ptr_t<library_manager_v3>()->register_callback(this);	}	break;	/*case WM_GETMINMAXINFO:	{	LPMINMAXINFO mmi = LPMINMAXINFO(lp);	mmi->ptMinTrackSize.y = cfg_height;	return 0;	}*/	case WM_SIZE:		on_size(LOWORD(lp), HIWORD(lp));		break;		/*	case DM_GETDEFID:		return (DC_HASDEFID<<16|IDOK);		case WM_GETDLGCODE:		return DLGC_DEFPUSHBUTTON;*/		//		break;	case WM_TIMER:		if (wp == EDIT_TIMER_ID)		{			refresh_tree();			KillTimer(wnd, wp);			m_timer = false;		}		break;	case WM_COMMAND:		switch (wp)		{		case IDC_FILTER | (EN_CHANGE << 16) :			if (m_timer)				KillTimer(wnd_edit, 500);			m_timer = SetTimer(wnd, EDIT_TIMER_ID, 500, NULL) != 0;			return TRUE;		case IDOK:			if (GetKeyState(VK_SHIFT) & KF_UP) do_playlist(p_selection, false);			else if (GetKeyState(VK_CONTROL) & KF_UP) do_playlist(p_selection, true, true);			else do_playlist(p_selection, true);			return 0;		}		break;	case WM_CONTEXTMENU:	{		enum { ID_SEND = 1, ID_ADD, ID_NEW, ID_AUTOSEND, ID_REMOVE, ID_REMOVEDEAD, ID_REFRESH, ID_FILT, ID_CONF, ID_VIEW_BASE };		HMENU menu = CreatePopupMenu();		POINT pt = { GET_X_LPARAM(lp), GET_Y_LPARAM(lp) };		service_ptr_t<contextmenu_manager> p_menu_manager;		unsigned IDM_MANAGER_BASE = 0;		HWND list = wnd_tv;		HTREEITEM treeitem = NULL;		TVHITTESTINFO ti;		memset(&ti, 0, sizeof(ti));		if (pt.x != -1 && pt.y != -1)		{			ti.pt = pt;			ScreenToClient(list, &ti.pt);			uSendMessage(list, TVM_HITTEST, 0, (long)&ti);			if (ti.hItem && (ti.flags & TVHT_ONITEM))			{				//FIX THIS AND AUTOSEND				//TreeView_Select(list, ti.hItem, TVGN_DROPHILITE);				//uSendMessage(list,TVM_SELECTITEM,TVGN_DROPHILITE,(long)ti.hItem);				treeitem = ti.hItem;			}		}		else		{			treeitem = TreeView_GetSelection(list);			RECT rc;			if (treeitem && TreeView_GetItemRect(wnd_tv, treeitem, &rc, TRUE))			{				MapWindowPoints(wnd_tv, HWND_DESKTOP, (LPPOINT)&rc, 2);				pt.x = rc.left;				pt.y = rc.top + (rc.bottom - rc.top) / 2;//.........这里部分代码省略.........
开发者ID:ASopH,项目名称:columns_ui,代码行数:101,


示例8: CPlaylistWindow_RenameMenu

void CPlaylistWindow_RenameMenu(const int iItem, const int iSubItem){	HWND hWndList;	POINT ptItem;	RECT rSubItem;	HMENU hmMenu;	UINT uiMenuCommand;		// We want to get the subitem's rect in the co-ordinate space of the dialog	hWndList = CLV_GetHWND(globals.m_hPlaylistViewControl);	CLV_GetItemSubRect(globals.m_hPlaylistViewControl, &rSubItem, iItem, iSubItem);	ptItem.x = rSubItem.left;	ptItem.y = rSubItem.bottom;	ClientToScreen(hWndList, &ptItem);		// Create menu	hmMenu = CreatePopupMenu();		AppendMenu(hmMenu, MF_STRING, (DWORD)rwsArtistAlbumNumberTitle, "Rename to <artist> - <album> - <tracknum> - <title>");	AppendMenu(hmMenu, MF_STRING, (DWORD)rwsArtistNumberTitle, "Rename to <artist> - <tracknum> - <title>");	AppendMenu(hmMenu, MF_STRING, (DWORD)rwsAlbumNumberTitle, "Rename to <album> - <tracknum> - <title>");	AppendMenu(hmMenu, MF_STRING, (DWORD)rwsAlbumNumber, "Rename to <album> - <tracknum>");	AppendMenu(hmMenu, MF_STRING, (DWORD)rwsNumberTitle, "Rename to <tracknum> - <title>");	AppendMenu(hmMenu, MF_STRING, (DWORD)rwsTitle, "Rename to <title>");		uiMenuCommand = TrackPopupMenuEx(hmMenu,									 TPM_NONOTIFY									 | TPM_RETURNCMD									 | TPM_RIGHTBUTTON,									 ptItem.x, ptItem.y,									 IF_GetHWnd(windows.m_hifPlaylist),									 NULL);	DestroyMenu(hmMenu);		if (uiMenuCommand)	{		int iSearchItemIDX;		int iNumberOfErrors;				iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);		iNumberOfErrors = 0;				while (iSearchItemIDX != CPC_INVALIDITEM)		{			BOOL bSucceeded;			bSucceeded = CPLI_RenameTrack((CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iSearchItemIDX),										  (CPe_FilenameFormat)uiMenuCommand);			iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX);						if (!bSucceeded)				iNumberOfErrors++;		}				if (iNumberOfErrors > 0)		{			MessageBox(IF_GetHWnd(windows.m_hifPlaylist),					   "Some files could not be renamed./n/nThis could be because they are either currently playing or are read-only.",					   "Error",					   MB_OK | MB_ICONASTERISK);		}	}}
开发者ID:Runcy,项目名称:coolplayer,代码行数:62,


示例9: OleUIAddVerbMenuW

/*********************************************************************** *           OleUIAddVerbMenuW (OLEDLG.14) */BOOL WINAPI OleUIAddVerbMenuW(IOleObject *object, LPCWSTR shorttype,    HMENU hMenu, UINT uPos, UINT idmin, UINT idmax, BOOL addConvert, UINT idConvert, HMENU *ret_submenu){    IEnumOLEVERB *enumverbs = NULL;    LPOLESTR usertype = NULL;    OLEVERB firstverb, verb;    WCHAR *objecttype;    WCHAR resstrW[32]; /* should be enough */    DWORD_PTR args[2];    BOOL singleverb;    HMENU submenu;    WCHAR *str;    TRACE("(%p, %s, %p, %d, %d, %d, %d, %d, %p)/n", object, debugstr_w(shorttype),        hMenu, uPos, idmin, idmax, addConvert, idConvert, ret_submenu);    if (ret_submenu)        *ret_submenu = NULL;    if (!hMenu || !ret_submenu)        return FALSE;    /* check if we can get verbs at all */    if (object)        IOleObject_EnumVerbs(object, &enumverbs);    LoadStringW(OLEDLG_hInstance, IDS_VERBMENU_OBJECT, resstrW, sizeof(resstrW)/sizeof(WCHAR));    /* no object, or object without enumeration support */    if (!object || !enumverbs) {        InsertMenuW(hMenu, uPos, MF_BYPOSITION|MF_STRING|MF_GRAYED, idmin, resstrW);        return FALSE;    }    /* root entry string */    if (!shorttype && (IOleObject_GetUserType(object, USERCLASSTYPE_SHORT, &usertype) == S_OK))        objecttype = usertype;    else        objecttype = (WCHAR*)shorttype;    /* iterate through verbs */    /* find first suitable verb */    get_next_insertable_verb(enumverbs, idmin, idmax, &firstverb);    singleverb = get_next_insertable_verb(enumverbs, idmin, idmax, &verb) != S_OK;    if (singleverb && !addConvert) {        LoadStringW(OLEDLG_hInstance, IDS_VERBMENU_SINGLEVERB_OBJECT, resstrW, sizeof(resstrW)/sizeof(WCHAR));        args[0] = (DWORD_PTR)firstverb.lpszVerbName;        args[1] = (DWORD_PTR)objecttype;        FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_ARGUMENT_ARRAY,            resstrW, 0, 0, (WCHAR*)&str, 0, (__ms_va_list*)args);        RemoveMenu(hMenu, uPos, MF_BYPOSITION);        InsertMenuW(hMenu, uPos, MF_BYPOSITION|MF_STRING, idmin, str);        CoTaskMemFree(firstverb.lpszVerbName);        HeapFree(GetProcessHeap(), 0, str);        IEnumOLEVERB_Release(enumverbs);        CoTaskMemFree(usertype);        return TRUE;    }    submenu = CreatePopupMenu();    insert_verb_to_menu(submenu, idmin, &firstverb);    CoTaskMemFree(firstverb.lpszVerbName);    if (!singleverb) {        insert_verb_to_menu(submenu, idmin, &verb);        CoTaskMemFree(verb.lpszVerbName);    }    while (get_next_insertable_verb(enumverbs, idmin, idmax, &verb) == S_OK) {        insert_verb_to_menu(submenu, idmin, &verb);        CoTaskMemFree(verb.lpszVerbName);    }    /* convert verb is at the bottom of a popup, separated from verbs */    if (addConvert) {        LoadStringW(OLEDLG_hInstance, IDS_VERBMENU_CONVERT, resstrW, sizeof(resstrW)/sizeof(WCHAR));        InsertMenuW(submenu, ~0, MF_BYPOSITION|MF_SEPARATOR, 0, NULL);        InsertMenuW(submenu, ~0, MF_BYPOSITION|MF_STRING, idConvert, resstrW);    }    if (submenu)        *ret_submenu = submenu;    /* now submenu is ready, add root entry to original menu, attach submenu */    LoadStringW(OLEDLG_hInstance, IDS_VERBMENU_OBJECT_WITH_NAME, resstrW, sizeof(resstrW)/sizeof(WCHAR));    args[0] = (DWORD_PTR)objecttype;    FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_ARGUMENT_ARRAY,        resstrW, 0, 0, (WCHAR*)&str, 0, (__ms_va_list*)args);    InsertMenuW(hMenu, uPos, MF_BYPOSITION|MF_POPUP|MF_STRING, (UINT_PTR)submenu, str);    HeapFree(GetProcessHeap(), 0, str);    IEnumOLEVERB_Release(enumverbs);//.........这里部分代码省略.........
开发者ID:Strongc,项目名称:reactos,代码行数:101,


示例10: GetClientRect

LRESULT nsf_window::onCreate(UINT uMsg, WPARAM wParam, LPARAM lParam){  RECT rcClient;  GetClientRect(&rcClient);    // get nsd/nsf  unsigned long params[2];  params[0] = (unsigned long)&nsf;  params[1] = (unsigned long)&nsd;  SendMessageRoot(MSG_GET_NSD, (WPARAM)0, (LPARAM)params);    mainList   = new entryList(IDC_MAINTREE,       ENTRYLIST_NSF, nsf, nsd,   0, 0, 200, rcClient.bottom, hSelf);  globalList = new entryList(IDC_GLOBALTREE, ENTRYLIST_DEFAULT, nsf, nsd, 484, 0, 118, rcClient.bottom, hSelf);  lookupList = new entryList(IDC_LOOKUPTREE,     ENTRYLIST_NSD, nsf, nsd, 602, 0, 236, rcClient.bottom, hSelf);	    //484, 354  hCodeMenu = CreatePopupMenu();  AppendMenu(hCodeMenu, MF_STRING, ID_GOOL_VIEW, "Open in Code View");     hModelMenuA = CreatePopupMenu();  AppendMenu(hModelMenuA, MF_STRING, ID_MODEL_VIEW, "Open in Model/Zone View");   AppendMenu(hModelMenuA, MF_SEPARATOR, ID_SEPARATOR, "");  AppendMenu(hModelMenuA, MF_STRING, ID_MODEL_EXPORT_AS_COLLADA, "Export as COLLADA");            hModelMenuB = CreatePopupMenu();  AppendMenu(hModelMenuB, MF_STRING, ID_MODEL_EXPORT_AS_MD3, "Export as .MD3");    CreateWindowEx(0, WC_STATIC, "",    WS_CHILD | WS_VISIBLE | SS_ETCHEDFRAME,    210, 10, 250, 110,    hSelf, NULL, hInstance, NULL);  CreateWindowEx(0, WC_STATIC, "Type: ",    WS_CHILD | WS_VISIBLE | SS_CENTER,    220, 25, 110, 22,    hSelf, NULL, hInstance, NULL);  CreateWindowEx(0, WC_STATIC, "Entry Count: ",    WS_CHILD | WS_VISIBLE | SS_CENTER,    220, 55, 110, 22,    hSelf, NULL, hInstance, NULL);  CreateWindowEx(0, WC_STATIC, "Checksum: ",    WS_CHILD | WS_VISIBLE | SS_CENTER,    220, 85, 110, 22,    hSelf, NULL, hInstance, NULL);  CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",     WS_CHILD | WS_VISIBLE,     320, 25, 100, 22,     hSelf, (HMENU)IDC_CHUNKTYPEEDIT, hInstance, NULL);  CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",     WS_CHILD | WS_VISIBLE,     320, 55, 100, 22,     hSelf, (HMENU)IDC_CHUNKENTRYCOUNTEDIT, hInstance, NULL);  CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",     WS_CHILD | WS_VISIBLE,     320, 85, 100, 22,     hSelf, (HMENU)IDC_CHUNKCHECKSUMEDIT, hInstance, NULL);  CreateWindowEx(0, WC_STATIC, "",    WS_CHILD | WS_VISIBLE | SS_ETCHEDFRAME,    210, 130, 250, 110,    hSelf, NULL, hInstance, NULL);  CreateWindowEx(0, WC_STATIC, "Type: ",    WS_CHILD | WS_VISIBLE | SS_CENTER,    220, 145, 110, 22,    hSelf, NULL, hInstance, NULL);  CreateWindowEx(0, WC_STATIC, "Item Count: ",    WS_CHILD | WS_VISIBLE | SS_CENTER,    220, 175, 110, 22,    hSelf, NULL, hInstance, NULL);  CreateWindowEx(0, WC_STATIC, "n/a: ",    WS_CHILD | WS_VISIBLE | SS_CENTER,    220, 205, 110, 22,    hSelf, NULL, hInstance, NULL);  CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",     WS_CHILD | WS_VISIBLE,     320, 145, 100, 22,     hSelf, (HMENU)IDC_ENTRYTYPEEDIT, hInstance, NULL);  CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",     WS_CHILD | WS_VISIBLE,     320, 175, 100, 22,     hSelf, (HMENU)IDC_ENTRYITEMCOUNTEDIT, hInstance, NULL);  CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",     WS_CHILD | WS_VISIBLE,     320, 205, 100, 22,     hSelf, (HMENU)IDC_UNUSEDEDIT, hInstance, NULL);      mainList->occupy();  lookupList->occupy();		  //.........这里部分代码省略.........
开发者ID:Almamu,项目名称:crashutils,代码行数:101,


示例11: CPlaylistWindow_TrackStackMenu

void CPlaylistWindow_TrackStackMenu(iItem){	HWND hWndList;	POINT ptItem;	RECT rSubItem;	HMENU hmMenu;	UINT uiMenuCommand;	int iSearchItemIDX;	CP_HPLAYLISTITEM hClickedItem;	CPe_ItemStackState enClickedItemState;	BOOL bMultipleSelection;		// We want to get the subitem's rect in the co-ordinate space of the dialog	hWndList = CLV_GetHWND(globals.m_hPlaylistViewControl);	CLV_GetItemSubRect(globals.m_hPlaylistViewControl, &rSubItem, iItem, 0);		// Are there multiple items selected?	iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM);		if (iSearchItemIDX != CPC_INVALIDITEM)		iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX);			if (iSearchItemIDX != CPC_INVALIDITEM)		bMultipleSelection = TRUE;	else		bMultipleSelection = FALSE;			ptItem.x = rSubItem.left;	ptItem.y = rSubItem.bottom;	ClientToScreen(hWndList, &ptItem);		// Create menu	hmMenu = CreatePopupMenu();		hClickedItem = (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iItem);		enClickedItemState = CPL_Stack_GetItemState(globals.m_hPlaylist, hClickedItem);		if (enClickedItemState != issUnstacked)	{		AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYFROMHERE, "Play from here");		SetMenuDefaultItem(hmMenu, IDC_CMDTS_PLAYFROMHERE, FALSE);				if (enClickedItemState != issStacked_Top)		{			AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYNEXT, "Play next");			AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_UNSTACK, "Unstack");		}				// Not played yet?				if (enClickedItemState == issStacked || enClickedItemState == issStacked_Top)		{			if (options.repeat_playlist == TRUE)			{				AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_STOPAFTER, "Repeat after this");				AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_STOPAFTER_NOREP, "Stop after this (repeat->off)");			}						else			{				AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_STOPAFTER, "Stop after this");			}		}				if (enClickedItemState != issStacked_Top)			AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_QUEUE, "Queue at end");	}		else	{		AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYNOW, "Play now");		SetMenuDefaultItem(hmMenu, IDC_CMDTS_PLAYNOW, FALSE);				AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYNEXT, "Play next");		AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_QUEUE, "Queue at end");	}		AppendMenu(hmMenu, MF_SEPARATOR, 0, NULL);		AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_CLEARSTACK, "Clear stack");	AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_RESTACKALL, "Restack all");		uiMenuCommand = TrackPopupMenuEx(hmMenu,									 TPM_NONOTIFY									 | TPM_RETURNCMD									 | TPM_RIGHTBUTTON,									 ptItem.x, ptItem.y,									 IF_GetHWnd(windows.m_hifPlaylist),									 NULL);	DestroyMenu(hmMenu);		if (uiMenuCommand == IDC_CMDTS_CLEARSTACK)	{		CPL_Stack_Clear(globals.m_hPlaylist);	}		else if (uiMenuCommand == IDC_CMDTS_RESTACKALL)	{		CPL_Stack_RestackAll(globals.m_hPlaylist);//.........这里部分代码省略.........
开发者ID:Runcy,项目名称:coolplayer,代码行数:101,


示例12: spline_win_message

int spline_win_message(SCREEN *sc,HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam){	extern SPLINE_EDIT spline_edit;	typedef enum CMDMENU{		CMD_ADDKEY,CMD_DELKEY	};	static int clickx=0,clicky=0,debounce=0;	static PARAM_CONTROL *pcdrag=0;	static HMENU hmenu=0;	static SPLINE_KEY_CONTROL *selected_key=0;	PARAM_CONTROL *p;	p=spline_edit.plist.list;	if(FALSE)	if(msg!=WM_PAINT&&msg!=WM_SETCURSOR&&msg!=WM_NCHITTEST&&msg!=WM_ENTERIDLE)	{		static DWORD tick;		if((GetTickCount()-tick)>500)			printf("--/n");		printf("spl");		print_msg(msg,lparam,wparam,hwnd);		tick=GetTickCount();	}	switch(msg){	case WM_CREATE:		{			hmenu=CreatePopupMenu();			if(hmenu){				InsertMenu(hmenu,0xFFFFFFFF,MF_BYPOSITION,CMD_ADDKEY,"add key");				InsertMenu(hmenu,0xFFFFFFFF,MF_BYPOSITION,CMD_DELKEY,"delete key");			}		}		break;	case WM_CONTEXTMENU:		if(hmenu){			POINT point;			int x,y;			point.x=x=LOWORD(lparam);			point.y=y=HIWORD(lparam);			MapWindowPoints(NULL,hwnd,&point,1);			clickx=x;			clicky=y;			point.x+=spline_edit.plist.si.hscroll;			point.y+=spline_edit.plist.si.vscroll;			if(hittest_param(p,point.x,point.y,0)){				TrackPopupMenu(hmenu,TPM_LEFTALIGN,x,y,0,hwnd,NULL);			}		}		break;	case WM_KEYFIRST:		switch(wparam){		case VK_DELETE:			PostMessage(hwnd,WM_COMMAND,CMD_DELKEY,0);			break;		}		break;	case WM_COMMAND:		{			PARAM_CONTROL *pc=0;			if(p){				find_param_type(&spline_edit.plist,CSPLINE,&pc);				if(pc){									}			}			switch(LOWORD(wparam)){			case CMD_ADDKEY:				{					SPLINE_KEY *sk=0;					POINT p;					p.x=clickx;					p.y=clicky;					MapWindowPoints(NULL,hwnd,&p,1);					p.x+=spline_edit.plist.si.hscroll;					p.y+=spline_edit.plist.si.vscroll;					add_splinekey(pc,&sk,p.x,p.y);				}				break;			case CMD_DELKEY:				del_sel_keys(pc);				break;			}		}		break;	case WM_MOUSEWHEEL:		{			POINT point;			PARAM_CONTROL *pc=0;			point.x=LOWORD(lparam);			point.y=HIWORD(lparam);			MapWindowPoints(NULL,hwnd,&point,1);			point.x+=spline_edit.plist.si.hscroll;			point.y+=spline_edit.plist.si.vscroll;			if(hittest_param(p,point.x,point.y,&pc)				&& pc->control.type==CDROPLIST){					signed short deltay=(HIWORD(wparam));					send_mouse_wheel(pc,deltay);					update_spline_selection(&spline_edit.plist);			}//.........这里部分代码省略.........
开发者ID:pinchyCZN,项目名称:demo_tool,代码行数:101,


示例13: Label

MenuPopUp::MenuPopUp(std::string text) : Label(text, 0, 0, 0, 0){	hwnd = (HWND)CreatePopupMenu();}
开发者ID:sypherce,项目名称:ds2key,代码行数:4,


示例14: EV_DlgMain

BOOL CALLBACK EV_DlgMain(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam){    switch(uMsg)    {    case WM_INITDIALOG:    {        EV_shared=hwndDlg;        EV_list_hwnd=GetDlgItem(hwndDlg, IDC_LIST);    }    return TRUE;    case WM_CLOSE:    {        EndDialog(hwndDlg, 0);    }    return TRUE;    case WM_BROWSE:    {        SendMessageA(EV_list_hwnd, LB_RESETCONTENT, 0, 0);        strcpy(EV_szFileName, (const char*)wParam);        strcpy(EV_program_dir, EV_szFileName);        int i=strlen(EV_program_dir);        while(EV_program_dir[i]!='//')            i--;        EV_program_dir[i]=0;        CreateThread(0, 0, EV_DebugThread, 0, 0, 0);    }    return TRUE;    case WM_DROPFILES:    {        SendMessageA(EV_list_hwnd, LB_RESETCONTENT, 0, 0);        DragQueryFileA((HDROP)wParam, 0, EV_szFileName, MAX_PATH);        strcpy(EV_program_dir, EV_szFileName);        int i=strlen(EV_program_dir);        while(EV_program_dir[i]!='//')            i--;        EV_program_dir[i]=0;        CreateThread(0, 0, EV_DebugThread, 0, 0, 0);    }    return TRUE;    case WM_CONTEXTMENU:    {        if(GetDlgCtrlID((HWND)wParam)==IDC_LIST)        {            LeftClick();            LeftClick();        }    }    return TRUE;    case WM_HELP:    {        char id[10]="";        sprintf(id, "%d", IDS_HELPEVLOG);        SetEnvironmentVariableA("HELPID", id);        SetEnvironmentVariableA("HELPTITLE", "EVLog Help");        DialogBox(hInst, MAKEINTRESOURCE(DLG_HELP), hwndDlg, DlgHelp);    }    return TRUE;    case WM_COMMAND:    {        switch(LOWORD(wParam))        {        case IDC_LIST:        {            switch(HIWORD(wParam))            {            case LBN_DBLCLK:            {                int cursel=SendMessageA(EV_list_hwnd, LB_GETCURSEL, 0, 0);                int count=SendMessageA(EV_list_hwnd, LB_GETCOUNT, 0, 0);                if(!count)                    return TRUE;                char line_text[1024]="";                char var_name[512]="";                char var_value[512]="";                SendMessageA(EV_list_hwnd, LB_GETTEXT, cursel, (LPARAM)line_text);                int len=strlen(line_text);                for(int i=0,j=0,k=0,l=0; i<len; i++)                {                    if(line_text[i]=='=')                    {                        i++;                        j=1;                    }                    if(!j)                        k+=sprintf(var_name+k, "%c", line_text[i]);                    else                        l+=sprintf(var_value+l, "%c", line_text[i]);                }                HMENU myMenu=0;                myMenu=CreatePopupMenu();                AppendMenu(myMenu, MF_STRING, 1, "Copy Variable &Name");                if(strcmp(var_value, "(0)"))                    AppendMenu(myMenu, MF_STRING, 2, "Copy Variable &Value");                AppendMenu(myMenu, MF_STRING, 3, "Copy &Line");//.........这里部分代码省略.........
开发者ID:cdaze,项目名称:akt,代码行数:101,


示例15: switch

//.........这里部分代码省略.........		{			m_panel_dragging_valid = false;			if (GetCapture() == wnd)				ReleaseCapture();			//SetCursor(LoadCursor(0, IDC_ARROW));		}		break;#if 0	case WM_PAINT:	{		PAINTSTRUCT ps;		BeginPaint(wnd, &ps);		COLORREF cr = GetSysColor(COLOR_3DFACE);		gdi_object_t<HBRUSH>::ptr_t br_line = CreateSolidBrush(/*RGB(226, 226, 226)*/cr);		t_size n, count = m_panels.get_count();		for (n = 0; n + 1<count; n++)		{			pfc::refcounted_object_ptr_t<panel> p_item = m_panels.get_item(n);			if (p_item->m_wnd_child)			{				RECT rc_area;				GetRelativeRect(p_item->m_wnd_child, m_wnd, &rc_area);				if (get_orientation() == vertical)				{					rc_area.top = rc_area.bottom;					rc_area.bottom += 2;					//FillRect(ps.hdc, &rc_area, GetSysColorBrush(COLOR_WINDOW));					//rc_area.top++;				}				else				{					rc_area.left = rc_area.right;					rc_area.right += 2;					//FillRect(ps.hdc, &rc_area, GetSysColorBrush(COLOR_WINDOW));					//rc_area.right--;				}				FillRect(ps.hdc, &rc_area, br_line);			}		}		EndPaint(wnd, &ps);	}	;#endif#if 0	case WM_CONTEXTMENU:		if ((HWND)wp == wnd)		{			window_transparent_fill m_trans_fill;			if (m_layout_editing_active)			{				RECT rc;				GetRelativeRect(wnd, HWND_DESKTOP, &rc);				ShowWindow(m_trans_fill.create(get_wnd(), 0, ui_helpers::window_position_t(rc)), SW_SHOWNORMAL);				POINT pt = { GET_X_LPARAM(lp), GET_Y_LPARAM(lp) };				HMENU menu = CreatePopupMenu();				HMENU menu_add = CreatePopupMenu();				uie::window_info_list_simple panels;				g_get_panel_list(panels);				enum { ID_CLOSE = 1, ID_ADD_BASE = 2 };				g_append_menu_panels(menu_add, panels, ID_ADD_BASE);				pfc::string8 temp;				get_name(temp);				uAppendMenu(menu, MF_STRING | MF_GRAYED, (UINT_PTR)0, temp);				uAppendMenu(menu, MF_MENUBREAK, (UINT_PTR)0, NULL);				AppendMenu(menu, MF_STRING | MF_POPUP, (UINT_PTR)menu_add, L"Add panel");				int cmd = TrackPopupMenu(menu, TPM_RIGHTBUTTON | TPM_NONOTIFY | TPM_RETURNCMD, pt.x, pt.y, 0, m_trans_fill.get_wnd(), 0);				DestroyMenu(menu);				m_trans_fill.destroy();				if (cmd)				{					if (cmd >= ID_ADD_BASE && cmd < panels.get_count() + ID_ADD_BASE)					{						pfc::refcounted_object_ptr_t<panel> ptr = new panel;						ptr->m_guid = panels[cmd - ID_ADD_BASE].guid;						m_panels.add_item(ptr);						refresh_children();						get_host()->on_size_limit_change(get_wnd(), uie::size_limit_all);						uie::splitter_window_v2_ptr sw2;						if (ptr->m_child.is_valid() && ptr->m_child->service_query_t(sw2))						{							sw2->enter_layout_editing_mode();						}					}				}			}			return 0;		}		break;#endif	}	return DefWindowProc(wnd, msg, wp, lp);}
开发者ID:i7voodoo,项目名称:columns_ui,代码行数:101,


示例16: PopupsListSubclassProc

//subclass proc for the list viewBOOL CALLBACK PopupsListSubclassProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){	switch (msg)	{		case WM_CONTEXTMENU:		{			int x = LOWORD(lParam);			int y = HIWORD(lParam);			int selection;								HMENU hMenu = CreatePopupMenu();			AppendMenu(hMenu, MF_STRING, POPUPMENU_TITLE, TranslateT("Copy title to clipboard"));			AppendMenu(hMenu, MF_STRING, POPUPMENU_MESSAGE, TranslateT("Copy message to clipboard"));			AppendMenu(hMenu, MF_STRING, POPUPMENU_TIMESTAMP, TranslateT("Copy timestamp to clipboard"));			selection = TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD, x, y, 0, hWnd, NULL);			DestroyMenu(hMenu);			if (selection)			{				CopyPopupDataToClipboard(hWnd, selection);			}					break;		}				case WM_KEYUP:		{			switch (wParam)			{				case 'C':				{					if (GetKeyState(VK_CONTROL))					{						CopyPopupDataToClipboard(hWnd, POPUPMENU_MESSAGE);					}										break;				}								case VK_ESCAPE:				{					SendMessage(GetParent(hWnd), WM_CLOSE, 0, 0);										break;				}							}			 			break;		}				case WM_SYSKEYDOWN:		{			if (wParam == 'X')			{				SendMessage(GetParent(hWnd), WM_CLOSE, 0, 0);			}						break;		}	}		return CallWindowProc(oldPopupsListProc, hWnd, msg, wParam, lParam);}
开发者ID:darkscout,项目名称:sje-miranda-plugins,代码行数:64,


示例17: DlgProc

/* Main Dialog */BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam){    int ret_code = 0;    switch(Message)    {        case WM_INITDIALOG:        {            int statwidths[] = {130, -1};            HMENU hMenu, hSubMenu;            UINT menuflags = MF_STRING;            if(config_inst.admin_access == 0)            {                menuflags = MF_STRING|MF_GRAYED;            }            hMenu = CreateMenu();            /* Creating management menu */            hSubMenu = CreatePopupMenu();            AppendMenu(hSubMenu, menuflags, UI_MENU_MANAGE_START,"&Start OSSEC");            AppendMenu(hSubMenu, menuflags, UI_MENU_MANAGE_STOP,"&Stop OSSEC");            AppendMenu(hSubMenu, MF_SEPARATOR, UI_MENU_NONE,"");            AppendMenu(hSubMenu, menuflags, UI_MENU_MANAGE_RESTART,"&Restart");            AppendMenu(hSubMenu, menuflags, UI_MENU_MANAGE_STATUS,"&Status");            AppendMenu(hSubMenu, MF_SEPARATOR, UI_MENU_NONE,"");            AppendMenu(hSubMenu, MF_STRING,UI_MENU_MANAGE_EXIT,"&Exit");            AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu,"&Manage");            /* Create view menu */            hSubMenu = CreatePopupMenu();            AppendMenu(hSubMenu, MF_STRING, UI_MENU_VIEW_LOGS, "&View Logs");            AppendMenu(hSubMenu, MF_STRING, UI_MENU_VIEW_CONFIG,"V&iew Config");            AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu,"&View");            hSubMenu = CreatePopupMenu();            AppendMenu(hSubMenu, MF_STRING, UI_MENU_HELP_ABOUT, "A&bout");            AppendMenu(hSubMenu, MF_STRING, UI_MENU_HELP_HELP, "Help");            AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Help");            AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);            SetMenu(hwnd, hMenu);            hStatus = CreateWindowEx(0, STATUSCLASSNAME, NULL,                    WS_CHILD|WS_VISIBLE,                    0, 0, 0, 0,                    hwnd, (HMENU)IDC_MAIN_STATUS,                    GetModuleHandle(NULL), NULL);            SendMessage(hStatus, SB_SETPARTS,                    sizeof(statwidths)/sizeof(int),                    (LPARAM)statwidths);            SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"http://www.ossec.net");            /* Initializing config */            config_read(hwnd);            gen_server_info(hwnd);            /* Setting the icons */            SendMessage(hwnd, WM_SETICON, ICON_SMALL,                    (LPARAM)LoadIcon(GetModuleHandle(NULL),                                     MAKEINTRESOURCE(IDI_OSSECICON)));            SendMessage(hwnd, WM_SETICON, ICON_BIG,                    (LPARAM)LoadIcon(GetModuleHandle(NULL),                                     MAKEINTRESOURCE(IDI_OSSECICON)));            if(config_inst.admin_access == 0)            {                MessageBox(hwnd, "Admin access required. Some features may not work properly. /n/n"                        "**If on Vista (or Server 2008), choose the /"Run as administrator/" option.",                        "Admin Access Required", MB_OK);                break;            }        }        break;        case WM_COMMAND:        switch(LOWORD(wParam))        {            /* In case of SAVE */            case IDC_ADD:            {                int chd = 0;                int len;                if(config_inst.admin_access == 0)                {                    MessageBox(hwnd, "Unable to edit configuration. "                                     "Admin access required.",                                     "Error Saving.", MB_OK);//.........这里部分代码省略.........
开发者ID:Ar0xA,项目名称:ossec-hids,代码行数:101,


示例18: init

void init(const char *title, unsigned char *imageData, unsigned int imageDataLen){    HWND hWnd;    HINSTANCE hInstance = GetModuleHandle(NULL);    // get thish shit into windows whide chars or whatever    titleWide = (wchar_t*)calloc(strlen(title) + 1, sizeof(wchar_t));    mbstowcs(titleWide, title, strlen(title));    wcscpy((wchar_t*)szTitle, titleWide);    wcscpy((wchar_t*)szWindowClass, (wchar_t*)TEXT("MyClass"));    MyRegisterClass(hInstance);    hWnd = InitInstance(hInstance, FALSE); // Don't show window    if (!hWnd)    {        return;    }    // Let's load up the tray icon    HICON hIcon;    {        // This is really hacky, but LoadImage won't let me load an image from memory.        // So we have to write out a temporary file, load it from there, then delete the file.        // From http://msdn.microsoft.com/en-us/library/windows/desktop/aa363875.aspx        TCHAR szTempFileName[MAX_PATH+1];        TCHAR lpTempPathBuffer[MAX_PATH+1];        int dwRetVal = GetTempPath(MAX_PATH+1,        // length of the buffer                                   lpTempPathBuffer); // buffer for path        if (dwRetVal > MAX_PATH+1 || (dwRetVal == 0))        {            return; // Failure        }        //  Generates a temporary file name.        int uRetVal = GetTempFileName(lpTempPathBuffer, // directory for tmp files                                      TEXT("_tmpicon"), // temp file name prefix                                      0,                // create unique name                                      szTempFileName);  // buffer for name        if (uRetVal == 0)        {            return; // Failure        }        // Dump the icon to the temp file        FILE* fIcon = fopen(szTempFileName, "wb");        fwrite(imageData, 1, imageDataLen, fIcon);        fclose(fIcon);        fIcon = NULL;        // Load the image from the file        hIcon = LoadImage(NULL, szTempFileName, IMAGE_ICON, 64, 64, LR_LOADFROMFILE);        // Delete the temp file        remove(szTempFileName);    }    nid.cbSize = sizeof(NOTIFYICONDATA);    nid.hWnd = hWnd;    nid.uID = 100;    nid.uCallbackMessage = WM_MYMESSAGE;    nid.hIcon = hIcon;    strcpy(nid.szTip, title); // MinGW seems to use ANSI    nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;    Shell_NotifyIcon(NIM_ADD, &nid);    hSubMenu = CreatePopupMenu();}
开发者ID:henrylee2cn,项目名称:trayhost,代码行数:71,


示例19: CreatePopupMenu

HRESULT STDMETHODCALLTYPE CSmtShell::QueryContextMenu(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags){ 	HMENU SubMenu = CreatePopupMenu();	memset(m_EnvPath, 0, sizeof(m_EnvPath));	if(!IsWorkEvn(m_szFile[0], m_EnvPath)){		if(FILE_ATTRIBUTE_DIRECTORY == GetFileAttributes(m_szFile[0])){			if(m_NumFiles <= 1){				InsertMenu(SubMenu, 0, MF_STRING | MF_BYPOSITION, idCmdFirst +101, _T("Set Environment"));								InsertMenu(hmenu, indexMenu, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);				InsertMenu(hmenu, indexMenu+1, MF_POPUP | MF_BYPOSITION, (UINT)SubMenu, _T("Smt Operate"));				InsertMenu(hmenu, indexMenu+2, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);			}		}	}	else{		if(IsProductEnv()){			int i = 0;			InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +103, _T("Update"));						InsertMenu(hmenu, indexMenu, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);			InsertMenu(hmenu, indexMenu+1, MF_POPUP | MF_BYPOSITION, (UINT)SubMenu, _T("Smt Operate"));			InsertMenu(hmenu, indexMenu+2, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);		}		else{			if(!IsInCtr()){				int i = 0;				if(!IsHaveEnvPath()){					if(m_FathAddFlag){						if(m_CouldAdd){							InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +107, _T("Add"));						}						else{							InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +108, _T("Revert"));						}					}					else{						InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +102, _T("Check out"));						InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +103, _T("Update"));						if(IsFatherInCtr()){							InsertMenu(SubMenu, i++, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);							InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +107, _T("Add"));							InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +108, _T("Revert"));						}					}					//InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +110, _T("Import"));										InsertMenu(hmenu, indexMenu, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);					InsertMenu(hmenu, indexMenu+1, MF_POPUP | MF_BYPOSITION, (UINT)SubMenu, _T("Smt Operate"));					InsertMenu(hmenu, indexMenu+2, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);				}			}			else{				int i = 0;				if(!IsHaveEnvPath()){					InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +104, _T("Commit"));					InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +105, _T("Check in"));					InsertMenu(SubMenu, i++, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);					if(!m_AddFlag){						InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +103, _T("Update"));						InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +106, _T("Cancel"));						InsertMenu(SubMenu, i++, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);						InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +109, _T("Merge"));					}					InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +108, _T("Revert"));										InsertMenu(hmenu, indexMenu, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);					InsertMenu(hmenu, indexMenu+1, MF_POPUP | MF_BYPOSITION, (UINT)SubMenu, _T("Smt Operate"));					InsertMenu(hmenu, indexMenu+2, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);				}			}		}	}	return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(109 + 1));}
开发者ID:songcser,项目名称:ALM,代码行数:78,


示例20: user_create_menu

HMENU user_create_menu(int mid, int flags){	HMENU  m = CreatePopupMenu(), c;	int i, count, sel_lng;#	define addmenu(x, i, v)  (InsertMenu(x, (UINT)-1, MF_BYPOSITION | MF_STRING, (i), (v)) )#	define addmenu_chk(x, i, v)  (InsertMenu(x, (UINT)-1, MF_BYPOSITION | MF_CHECKED | MF_STRING, (i), (v)) )#	define menugroup(x)      (InsertMenu(x, (UINT)-1, MF_BYPOSITION | MF_SEPARATOR, 0, 0) )#	define addchild(x, h, v) (InsertMenu(x, (UINT)-1, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT_PTR)(h), (v)) )#	define menubegin(x)      (x = CreatePopupMenu())#	define menuend(x)        (DestroyMenu(x))	switch(mid)	{	case 1:		{			struct video_dec *vd;			letter sub_name[128];			vdata.shared->call_function(call_video_getvdec, 0, &vd, 0);						menubegin(c);			addmenu(c, 1001, uni("(None)"));			count = vd->video_decoder_trans_info(video_get_sub_language_count, 0, 0, 0);							/* get primary language id */			sel_lng = vd->video_decoder_trans_info(video_get_sub_language_current, 0, 0, 0);			for(i=0; i<count; i++)			{				vd->video_decoder_trans_info(video_get_sub_language_current, i, 0, sub_name);				if(i != sel_lng)					addmenu(c, 2000 + i, sub_name);				else					addmenu_chk(c, 2000 + i, sub_name);			}			addchild(m, c, uni("Primary"));			menubegin(c);			addmenu(c, 1002, uni("(None)"));			/* get secondary language id */			sel_lng = vd->video_decoder_trans_info(video_get_sub_language_current, 1, 0, 0);			for(i=0; i<count; i++)			{				vd->video_decoder_trans_info(video_get_sub_language_current, i, 0, sub_name);								if(i != sel_lng)					addmenu(c, 8000 + i, sub_name);				else					addmenu_chk(c, 8000 + i, sub_name);			}			addchild(m, c, uni("Secondary"));		}		break;	}	return m;}
开发者ID:hownam,项目名称:fennec,代码行数:69,


示例21: WinMain

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,    LPSTR lpCmdLine, int nCmdShow){    WNDCLASSEX wc;    MSG Msg;    //Step 1: Registering the Window Class    wc.cbSize        = sizeof(WNDCLASSEX);    wc.style         = 0;    wc.lpfnWndProc   = WndProc;    wc.cbClsExtra    = 0;    wc.cbWndExtra    = 0;    wc.hInstance     = hInstance;    wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);    wc.lpszMenuName  = NULL;    wc.lpszClassName = g_szClassName;    wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);    if(!RegisterClassEx(&wc)){        MessageBox(NULL, "Window Registration Failed!", "Error!",            MB_ICONEXCLAMATION | MB_OK);        return 0;    }        DWORD dwExStyle, dwStyle;        dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;      dwStyle=(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX);    // Step 2: Creating the Window    hwnd = CreateWindowEx(        dwExStyle,        g_szClassName,        "Bes Language Editor",        dwStyle,        CW_USEDEFAULT, CW_USEDEFAULT, 600, 600,        NULL, NULL, hInstance, NULL);    if(hwnd == NULL){        MessageBox(NULL, "Window Creation Failed!", "Error!",            MB_ICONEXCLAMATION | MB_OK);        return 0;    }    HICON hIcon, hIconSm;    hMenu = CreateMenu();    hSubMenu = CreatePopupMenu();    AppendMenu(hSubMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING, ID_FILE_NEW, "&New/tCtrl + N");    AppendMenu(hSubMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING, ID_FILE_OPEN, "&Open/tCtrl + O");    AppendMenu(hSubMenu, MF_BYCOMMAND | MF_DISABLED | MF_STRING, ID_FILE_SAVE, "&Save/tCtrl + S");    AppendMenu(hSubMenu, MF_SEPARATOR, ID_FILE_SEPARATOR, "");    AppendMenu(hSubMenu, MF_BYCOMMAND | MF_DISABLED | MF_STRING, ID_FILE_CLOSE, "&Close/tCtrl + C");    AppendMenu(hSubMenu, MF_SEPARATOR, ID_FILE_SEPARATOR, "");    AppendMenu(hSubMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING, ID_FILE_EXIT, "E&xit/tCtrl + X");    AppendMenu(hMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING | MF_POPUP, (UINT)hSubMenu, "&File");    hSubMenu = CreatePopupMenu();    AppendMenu(hSubMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING, ID_STUFF_COMPILE, "&Compile/tCtrl + F9");    AppendMenu(hSubMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING, ID_STUFF_RUN, "&Run/tCtrl + F12");    AppendMenu(hMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Execute");    SetMenu(hwnd, hMenu);        hIcon = LoadImage(NULL, "BesLanguage.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE);    if(hIcon)        SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon);    else        MessageBox(hwnd, "Could not load large icon!", "Error", MB_OK | MB_ICONERROR);    hIconSm = LoadImage(NULL, "BesLanguage.ico", IMAGE_ICON, 16, 16, LR_LOADFROMFILE);    if(hIconSm)        SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hIconSm);    else        MessageBox(hwnd, "Could not load small icon!", "Error", MB_OK | MB_ICONERROR);		SetFocus(hwnd);    ShowWindow(hwnd, SW_MAXIMIZE);    UpdateWindow(hwnd);    // Step 3: The Message Loop    while(GetMessage(&Msg, NULL, 0, 0) > 0)    {        TranslateMessage(&Msg);        DispatchMessage(&Msg);    }    return Msg.wParam;}
开发者ID:kurlp00,项目名称:beslanguage,代码行数:91,


示例22: InitLauncherMenu

// Procedure de creation de menu à partir d'une clé de registreHMENU InitLauncherMenu( char * Key ) {	HMENU menu ;	menu = CreatePopupMenu() ;	char KeyName[1024] ;	int nbitem = 0,i ;		DeleteObject( bmpCheck ) ; bmpCheck = GetMyCheckBitmaps( 1 ) ;	DeleteObject( bmpUnCheck ) ; bmpUnCheck = GetMyCheckBitmaps( 2 ) ;		if( (IniFileFlag == SAVEMODE_REG)||(IniFileFlag == SAVEMODE_FILE) ) {		sprintf( KeyName, "%s//%s", TEXT(PUTTY_REG_POS), Key ) ;		ReadSpecialMenu( menu, KeyName, &nbitem, 0 ) ;		}	else if( IniFileFlag == SAVEMODE_DIR ) {		ReadSpecialMenu( menu, Key, &nbitem, 0 ) ;		}	if( GetMenuItemCount( menu ) > 0 )		AppendMenu( menu, MF_SEPARATOR, 0, 0 ) ;	// Creation du menu bouton gauche	DestroyMenu( HideMenu ) ;	HideMenu = CreatePopupMenu() ;	if( !IsUnique ) {		AppendMenu( HideMenu, MF_ENABLED, IDM_LAUNCHER+3, "&Hide all" ) ;		AppendMenu( HideMenu, MF_ENABLED, IDM_LAUNCHER+4, "&Unhide all" ) ;		//AppendMenu( HideMenu, MF_ENABLED, IDM_LAUNCHER+5, "&Refresh list" ) ;		AppendMenu( HideMenu, MF_ENABLED, IDM_LAUNCHER+6, "&Window unique" ) ;		CheckMenuItem( HideMenu, IDM_LAUNCHER+6, MF_BYCOMMAND | MF_UNCHECKED) ;		}		else {		AppendMenu( HideMenu, MF_ENABLED, IDM_LAUNCHER+6, "&Window unique" ) ;		CheckMenuItem( HideMenu, IDM_LAUNCHER+6, MF_BYCOMMAND | MF_CHECKED) ;		}	//AppendMenu( HideMenu, MF_ENABLED, IDM_GONEXT, "&Next" ) ;	//AppendMenu( HideMenu, MF_ENABLED, IDM_GOPREVIOUS, "&Previous" ) ;	if( RefreshWinList( MainHwnd ) > 0 ) {		AppendMenu( HideMenu, MF_SEPARATOR, 0, 0 ) ;		for( i=0 ; i<NbWin ; i++ ) {			AppendMenu( HideMenu, MF_ENABLED, IDM_GOHIDE+i, TabWin[i].name ) ;			SetMenuItemBitmaps ( HideMenu, IDM_GOHIDE+i, MF_BYCOMMAND, bmpUnCheck, bmpCheck ) ;			if( IsWindowVisible( TabWin[i].hwnd ) ) 				CheckMenuItem( HideMenu, IDM_GOHIDE+i, MF_BYCOMMAND | MF_CHECKED) ;			else 				CheckMenuItem( HideMenu, IDM_GOHIDE+i, MF_BYCOMMAND | MF_UNCHECKED) ;			}		}	AppendMenu( HideMenu, MF_SEPARATOR, 0, 0 ) ;	AppendMenu( HideMenu, MF_ENABLED, IDM_ABOUT, "&About" ) ;	AppendMenu( HideMenu, MF_ENABLED, IDM_QUIT, "&Quit" ) ;		AppendMenu( menu, MF_POPUP, (UINT_PTR)HideMenu, "&Opened sessions" ) ;	AppendMenu( menu, MF_SEPARATOR, 0, 0 ) ;		AppendMenu( menu, MF_ENABLED, IDM_LAUNCHER+7, "&Refresh" ) ;	AppendMenu( menu, MF_ENABLED, IDM_LAUNCHER+1, "&Configuration" ) ;	AppendMenu( menu, MF_ENABLED, IDM_LAUNCHER+2, "&TTY-ed" ) ;	AppendMenu( menu, MF_SEPARATOR, 0, 0 ) ;	AppendMenu( menu, MF_ENABLED, IDM_ABOUT, "&About" ) ;	AppendMenu( menu, MF_ENABLED, IDM_QUIT, "&Quit" ) ;	return menu ;	}
开发者ID:niieani,项目名称:kitty-remix,代码行数:65,


示例23: WndProc

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){    int wmId, wmEvent;    PAINTSTRUCT ps;    HDC hdc;    RECT rcClient;                       // The parent window's client area.    static HMENU hMainMenu, hFileMenu;    static HWND hSearchButton;    int i;    OPENFILENAME ofn;    TCHAR szFileName[256] = "";    static struct {        TCHAR *name;        int width;    } columns[] = {        { TEXT("Номер телефона:"), 100},        { TEXT("Фамилия:"), 100},        { TEXT("Имя:"), 100},        { TEXT("Отчество:"), 100},        { TEXT("Улица:"), 150},        { TEXT("Дом:"), 100},        { TEXT("Корпус:"), 100},        { TEXT("Квартира:"), 100}    };    const int ColumnsCount = _countof(columns);    switch (message)    {    case WM_CREATE:        LoadDatabaseDLL();        hMainMenu=CreateMenu();        hFileMenu=CreatePopupMenu();        i=0;        CreateMenuItem(hFileMenu,"&Load database",i++,ID_BUTTONLOADDB,NULL,FALSE,MFT_STRING);        CreateMenuItem(hFileMenu,"&Show database",i++,ID_BUTTONSHOWDB,NULL,FALSE,MFT_STRING);        CreateMenuItem(hFileMenu,"&Exit",i++,IDM_EXIT,NULL,FALSE,MFT_STRING);        i=0;        CreateMenuItem(hMainMenu,"&File",i++,0,hFileMenu,FALSE,MFT_STRING);        SetMenu(hWnd,hMainMenu);        DrawMenuBar(hWnd);        GetClientRect (hWnd, &rcClient);        hListView = CreateWindowEx(                        WS_EX_STATICEDGE,                        WC_LISTVIEW,                        NULL,                        WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_EDITLABELS,                        0, 0,                        rcClient.right, rcClient.bottom-100,                        hWnd, NULL, hInst, NULL);        ListView_SetExtendedListViewStyle(hListView,LVS_EX_FULLROWSELECT);        //adding columns        for (int i=0; i<ColumnsCount; i++)        {            AddColumnToListView(hListView, columns[i].name, i, columns[i].width);        }        hPhoneLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 5, 400, 65, 25, hWnd, hMainMenu, hInst, NULL);        SendMessage(hPhoneLabel, WM_SETTEXT, NULL, (LPARAM) "Телефон:");        hLastNameLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 90, 400, 100, 25, hWnd, hMainMenu, hInst, NULL);        SendMessage(hLastNameLabel, WM_SETTEXT, NULL, (LPARAM) "Фамилия:");        hNameLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 190, 400, 100, 25, hWnd, hMainMenu, hInst, NULL);        SendMessage(hNameLabel, WM_SETTEXT, NULL, (LPARAM) "Имя:");        hPatronymLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 290, 400, 100, 25, hWnd, hMainMenu, hInst, NULL);        SendMessage(hPatronymLabel, WM_SETTEXT, NULL, (LPARAM) "Отчество:");        hStreetLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 390, 400, 150, 25, hWnd, hMainMenu, hInst, NULL);        SendMessage(hStreetLabel, WM_SETTEXT, NULL, (LPARAM) "Улица");        hHouseLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 540, 400, 50, 25, hWnd, hMainMenu, hInst, NULL);        SendMessage(hHouseLabel, WM_SETTEXT, NULL, (LPARAM) "Дом");        hHousingLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 590, 400, 60, 25, hWnd, hMainMenu, hInst, NULL);        SendMessage(hHousingLabel, WM_SETTEXT, NULL, (LPARAM)"Корпус:");        hApartmentLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 650, 400, 30, 25, hWnd, hMainMenu, hInst, NULL);        SendMessage(hApartmentLabel, WM_SETTEXT, NULL, (LPARAM) "кв:");        hPhoneEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	3, 425, 83, 25,	hWnd, (HMENU)(101),	hInst, NULL);        hLastNameEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	90, 425, 98, 25,	hWnd, (HMENU)(101),	hInst, NULL);        hNameEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	190, 425, 98, 25,	hWnd, (HMENU)(101),	hInst, NULL);        hPatronymEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	290, 425, 98, 25,	hWnd, (HMENU)(101),	hInst, NULL);        hStreetEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	390, 425, 148, 25,	hWnd, (HMENU)(101),	hInst, NULL);        hHouseEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	540, 425, 98, 25,	hWnd, (HMENU)(101),	hInst, NULL);        hHousingEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	590, 425, 58, 25,	hWnd, (HMENU)(101),	hInst, NULL);        hApartmentEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,	650, 425, 28, 25,	hWnd, (HMENU)(101),	hInst, NULL);        hSearchButton = CreateWindowEx(                            WS_EX_STATICEDGE,                            WC_BUTTON,                            NULL,                            WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_EDITLABELS,                            690, 425,                            50, 25,                            hWnd, NULL, hInst, NULL);        SendMessage(hSearchButton, WM_SETTEXT, NULL, (LPARAM) "Поиск");        ShowWindow(hWnd, NULL);        UpdateWindow(hWnd);        break;    case WM_COMMAND://.........这里部分代码省略.........
开发者ID:ItramariN,项目名称:lab,代码行数:101,


示例24: TaskManager_OnTabWndSelChange

static void TaskManager_OnTabWndSelChange(void){    int   i;    HMENU hMenu;    HMENU hOptionsMenu;    HMENU hViewMenu;    HMENU hSubMenu;    WCHAR wszLargeIcons[255];    WCHAR wszSmallIcons[255];    WCHAR wszDetails[255];    WCHAR wszWindows[255];    WCHAR wszSelectColumns[255];    WCHAR wszShow16bTasks[255];    WCHAR wszOneGraphAllCPU[255];    WCHAR wszOneGraphPerCPU[255];    WCHAR wszCPUHistory[255];    WCHAR wszShowKernelTimes[255];    LoadStringW(hInst, IDS_VIEW_LARGE, wszLargeIcons, sizeof(wszLargeIcons)/sizeof(WCHAR));    LoadStringW(hInst, IDS_VIEW_SMALL, wszSmallIcons, sizeof(wszSmallIcons)/sizeof(WCHAR));    LoadStringW(hInst, IDS_VIEW_DETAILS, wszDetails, sizeof(wszDetails)/sizeof(WCHAR));    LoadStringW(hInst, IDS_WINDOWS, wszWindows, sizeof(wszWindows)/sizeof(WCHAR));    LoadStringW(hInst, IDS_VIEW_SELECTCOLUMNS, wszSelectColumns, sizeof(wszSelectColumns)/sizeof(WCHAR));    LoadStringW(hInst, IDS_OPTIONS_SHOW16BITTASKS, wszShow16bTasks, sizeof(wszShow16bTasks)/sizeof(WCHAR));    LoadStringW(hInst, IDS_VIEW_CPUHISTORY_ONEGRAPHALL, wszOneGraphAllCPU, sizeof(wszOneGraphAllCPU)/sizeof(WCHAR));    LoadStringW(hInst, IDS_VIEW_CPUHISTORY_ONEGRAPHPERCPU, wszOneGraphPerCPU, sizeof(wszOneGraphPerCPU)/sizeof(WCHAR));    LoadStringW(hInst, IDS_VIEW_CPUHISTORY, wszCPUHistory, sizeof(wszCPUHistory)/sizeof(WCHAR));    LoadStringW(hInst, IDS_VIEW_SHOWKERNELTIMES, wszShowKernelTimes, sizeof(wszShowKernelTimes)/sizeof(WCHAR));    hMenu = GetMenu(hMainWnd);    hViewMenu = GetSubMenu(hMenu, 2);    hOptionsMenu = GetSubMenu(hMenu, 1);    TaskManagerSettings.ActiveTabPage = SendMessageW(hTabWnd, TCM_GETCURSEL, 0, 0);    for (i = GetMenuItemCount(hViewMenu) - 1; i > 2; i--) {        hSubMenu = GetSubMenu(hViewMenu, i);        if (hSubMenu)            DestroyMenu(hSubMenu);        RemoveMenu(hViewMenu, i, MF_BYPOSITION);    }    RemoveMenu(hOptionsMenu, 3, MF_BYPOSITION);    switch (TaskManagerSettings.ActiveTabPage) {    case 0:        ShowWindow(hApplicationPage, SW_SHOW);        ShowWindow(hProcessPage, SW_HIDE);        ShowWindow(hPerformancePage, SW_HIDE);        BringWindowToTop(hApplicationPage);        AppendMenuW(hViewMenu, MF_STRING, ID_VIEW_LARGE, wszLargeIcons);        AppendMenuW(hViewMenu, MF_STRING, ID_VIEW_SMALL, wszSmallIcons);        AppendMenuW(hViewMenu, MF_STRING, ID_VIEW_DETAILS, wszDetails);        if (GetMenuItemCount(hMenu) <= 4) {            hSubMenu = LoadMenuW(hInst, MAKEINTRESOURCEW(IDR_WINDOWSMENU));            InsertMenuW(hMenu, 3, MF_BYPOSITION|MF_POPUP, (UINT_PTR)hSubMenu, wszWindows);            DrawMenuBar(hMainWnd);        }        if (TaskManagerSettings.View_LargeIcons)            CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_LARGE, MF_BYCOMMAND);        else if (TaskManagerSettings.View_SmallIcons)            CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_SMALL, MF_BYCOMMAND);        else            CheckMenuRadioItem(hViewMenu, ID_VIEW_LARGE, ID_VIEW_DETAILS, ID_VIEW_DETAILS, MF_BYCOMMAND);        /*         * Give the application list control focus         */        SetFocus(hApplicationPageListCtrl);        break;    case 1:        ShowWindow(hApplicationPage, SW_HIDE);        ShowWindow(hProcessPage, SW_SHOW);        ShowWindow(hPerformancePage, SW_HIDE);        BringWindowToTop(hProcessPage);        AppendMenuW(hViewMenu, MF_STRING, ID_VIEW_SELECTCOLUMNS, wszSelectColumns);        AppendMenuW(hOptionsMenu, MF_STRING, ID_OPTIONS_SHOW16BITTASKS, wszShow16bTasks);        if (TaskManagerSettings.Show16BitTasks)            CheckMenuItem(hOptionsMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND|MF_CHECKED);        if (GetMenuItemCount(hMenu) > 4)        {            RemoveMenu(hMenu, 3, MF_BYPOSITION);            DrawMenuBar(hMainWnd);        }        /*         * Give the process list control focus         */        SetFocus(hProcessPageListCtrl);        break;    case 2:        ShowWindow(hApplicationPage, SW_HIDE);        ShowWindow(hProcessPage, SW_HIDE);        ShowWindow(hPerformancePage, SW_SHOW);        BringWindowToTop(hPerformancePage);        if (GetMenuItemCount(hMenu) > 4) {            RemoveMenu(hMenu, 3, MF_BYPOSITION);            DrawMenuBar(hMainWnd);        }        hSubMenu = CreatePopupMenu();        AppendMenuW(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHALL, wszOneGraphAllCPU);        AppendMenuW(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, wszOneGraphPerCPU);//.........这里部分代码省略.........
开发者ID:Sunmonds,项目名称:wine,代码行数:101,


示例25: disasmbasewin_info

consolewin_info::consolewin_info(debugger_windows_interface &debugger) :	disasmbasewin_info(debugger, true, "Debug", nullptr),	m_devices_menu(nullptr){	if ((window() == nullptr) || (m_views[0] == nullptr))		goto cleanup;	// create the views	m_views[1].reset(global_alloc(debugview_info(debugger, *this, window(), DVT_STATE)));	if (!m_views[1]->is_valid())		goto cleanup;	m_views[2].reset(global_alloc(debugview_info(debugger, *this, window(), DVT_CONSOLE)));	if (!m_views[2]->is_valid())		goto cleanup;	{		// Add image menu only if image devices exist		image_interface_iterator iter(machine().root_device());		if (iter.first() != nullptr)		{			m_devices_menu = CreatePopupMenu();			for (device_image_interface &img : iter)			{				osd::text::tstring tc_buf = osd::text::to_tstring(string_format("%s : %s", img.device().name(), img.exists() ? img.filename() : "[no image]"));				AppendMenu(m_devices_menu, MF_ENABLED, 0, tc_buf.c_str());			}			AppendMenu(GetMenu(window()), MF_ENABLED | MF_POPUP, (UINT_PTR)m_devices_menu, TEXT("Images"));		}		// get the work bounds		RECT work_bounds, bounds;		SystemParametersInfo(SPI_GETWORKAREA, 0, &work_bounds, 0);		// adjust the min/max sizes for the window style		bounds.top = bounds.left = 0;		bounds.right = bounds.bottom = EDGE_WIDTH + m_views[1]->maxwidth() + (2 * EDGE_WIDTH) + 100 + EDGE_WIDTH;		AdjustWindowRectEx(&bounds, DEBUG_WINDOW_STYLE, FALSE, DEBUG_WINDOW_STYLE_EX);		set_minwidth(bounds.right - bounds.left);		bounds.top = bounds.left = 0;		bounds.right = bounds.bottom = EDGE_WIDTH + m_views[1]->maxwidth() + (2 * EDGE_WIDTH) + std::max(m_views[0]->maxwidth(), m_views[2]->maxwidth()) + EDGE_WIDTH;		AdjustWindowRectEx(&bounds, DEBUG_WINDOW_STYLE, FALSE, DEBUG_WINDOW_STYLE_EX);		set_maxwidth(bounds.right - bounds.left);		// position the window at the bottom-right		int const bestwidth = (std::min<uint32_t>)(maxwidth(), work_bounds.right - work_bounds.left);		int const bestheight = (std::min<uint32_t>)(500, work_bounds.bottom - work_bounds.top);		SetWindowPos(window(), HWND_TOP,					work_bounds.right - bestwidth, work_bounds.bottom - bestheight,					bestwidth, bestheight,					SWP_SHOWWINDOW);	}	// recompute the children	set_cpu(*machine().debugger().cpu().get_visible_cpu());	// mark the edit box as the default focus and set it	editwin_info::set_default_focus();	return;cleanup:	m_views[2].reset();	m_views[1].reset();	m_views[0].reset();}
开发者ID:goofwear,项目名称:mame,代码行数:65,


示例26: GetMessagePos

void CManageBookmarksDialog::OnListViewHeaderRClick(){	DWORD dwCursorPos = GetMessagePos();	POINT ptCursor;	ptCursor.x = GET_X_LPARAM(dwCursorPos);	ptCursor.y = GET_Y_LPARAM(dwCursorPos);	HMENU hMenu = CreatePopupMenu();	int iItem = 0;	for each(auto ci in m_pmbdps->m_vectorColumnInfo)	{		TCHAR szColumn[128];		GetColumnString(ci.ColumnType,szColumn,SIZEOF_ARRAY(szColumn));		MENUITEMINFO mii;		mii.cbSize		= sizeof(mii);		mii.fMask		= MIIM_ID|MIIM_STRING|MIIM_STATE;		mii.wID			= ci.ColumnType;		mii.dwTypeData	= szColumn;		mii.fState		= 0;		if(ci.bActive)		{			mii.fState |= MFS_CHECKED;		}		/* The name column cannot be removed. */		if(ci.ColumnType == CManageBookmarksDialogPersistentSettings::COLUMN_TYPE_NAME)		{			mii.fState |= MFS_DISABLED;		}		InsertMenuItem(hMenu,iItem,TRUE,&mii);		++iItem;	}	int iCmd = TrackPopupMenu(hMenu,TPM_LEFTALIGN|TPM_RETURNCMD,ptCursor.x,ptCursor.y,0,m_hDlg,NULL);	DestroyMenu(hMenu);	int iColumn = 0;	for(auto itr = m_pmbdps->m_vectorColumnInfo.begin();itr != m_pmbdps->m_vectorColumnInfo.end();++itr)	{		if(itr->ColumnType == iCmd)		{			HWND hListView = GetDlgItem(m_hDlg,IDC_MANAGEBOOKMARKS_LISTVIEW);			if(itr->bActive)			{				itr->iWidth = ListView_GetColumnWidth(hListView,iColumn);				ListView_DeleteColumn(hListView,iColumn);			}			else			{				LVCOLUMN lvCol;				TCHAR szTemp[128];				GetColumnString(itr->ColumnType,szTemp,SIZEOF_ARRAY(szTemp));				lvCol.mask		= LVCF_TEXT|LVCF_WIDTH;				lvCol.pszText	= szTemp;				lvCol.cx		= itr->iWidth;				ListView_InsertColumn(hListView,iColumn,&lvCol);				HWND hTreeView = GetDlgItem(m_hDlg,IDC_MANAGEBOOKMARKS_TREEVIEW);				HTREEITEM hSelected = TreeView_GetSelection(hTreeView);				CBookmarkFolder &BookmarkFolder = m_pBookmarkTreeView->GetBookmarkFolderFromTreeView(hSelected);				int inneriItem = 0;				for(auto itrBookmarks = BookmarkFolder.begin();itrBookmarks != BookmarkFolder.end();++itrBookmarks)				{					TCHAR szColumn[256];					GetBookmarkItemColumnInfo(*itrBookmarks,itr->ColumnType,szColumn,SIZEOF_ARRAY(szColumn));					ListView_SetItemText(hListView,inneriItem,iColumn,szColumn);					++inneriItem;				}			}			itr->bActive = !itr->bActive;			break;		}		else		{			if(itr->bActive)			{				++iColumn;			}		}	}}
开发者ID:defhook,项目名称:explorerplusplus,代码行数:95,


示例27: WindowProc

static LRESULT CALLBACK WindowProc(HWND hWnd, UINT msg, WPARAM wParam,                                   LPARAM lParam) {  static SERVICE_TABLE_ENTRY service_table[] = {    {server_name, (LPSERVICE_MAIN_FUNCTION) ServiceMain},    {NULL, NULL}  };  int service_installed;  char buf[200], *service_argv[] = {__argv[0], NULL};  POINT pt;  HMENU hMenu;  switch (msg) {    case WM_CREATE:      if (__argv[1] != NULL &&          !strcmp(__argv[1], service_magic_argument)) {        start_mongoose(1, service_argv);        StartServiceCtrlDispatcher(service_table);        exit(EXIT_SUCCESS);      } else {        start_mongoose(__argc, __argv);      }      break;    case WM_COMMAND:      switch (LOWORD(wParam)) {        case ID_QUIT:          mg_stop(ctx);          Shell_NotifyIcon(NIM_DELETE, &TrayIcon);          PostQuitMessage(0);          break;        case ID_EDIT_CONFIG:          edit_config_file();          break;        case ID_INSTALL_SERVICE:        case ID_REMOVE_SERVICE:          manage_service(LOWORD(wParam));          break;      }      break;    case WM_USER:      switch (lParam) {        case WM_RBUTTONUP:        case WM_LBUTTONUP:        case WM_LBUTTONDBLCLK:          hMenu = CreatePopupMenu();          AppendMenu(hMenu, MF_STRING | MF_GRAYED, ID_SEPARATOR, server_name);          AppendMenu(hMenu, MF_SEPARATOR, ID_SEPARATOR, "");          service_installed = manage_service(0);          snprintf(buf, sizeof(buf), "NT service: %s installed",                   service_installed ? "" : "not");          AppendMenu(hMenu, MF_STRING | MF_GRAYED, ID_SEPARATOR, buf);          AppendMenu(hMenu, MF_STRING | (service_installed ? MF_GRAYED : 0),                     ID_INSTALL_SERVICE, "Install");          AppendMenu(hMenu, MF_STRING | (!service_installed ? MF_GRAYED : 0),                     ID_REMOVE_SERVICE, "Deinstall");          AppendMenu(hMenu, MF_SEPARATOR, ID_SEPARATOR, "");          AppendMenu(hMenu, MF_STRING, ID_EDIT_CONFIG, "Edit config file");          AppendMenu(hMenu, MF_STRING, ID_QUIT, "Exit");          GetCursorPos(&pt);          SetForegroundWindow(hWnd);          TrackPopupMenu(hMenu, 0, pt.x, pt.y, 0, hWnd, NULL);          PostMessage(hWnd, WM_NULL, 0, 0);          DestroyMenu(hMenu);          break;      }      break;  }  return DefWindowProc(hWnd, msg, wParam, lParam);}
开发者ID:UserNumberTwo,项目名称:SnapSVG-Animator,代码行数:69,


示例28: DialogBoxSubclassProc

//.........这里部分代码省略.........					break;			}			SendMessage(hwndHelpDlg, M_CHANGEHELPCONTROL, 0, (LPARAM)hwndDlg);			return 0;		}		break;	case WM_CONTEXTMENU:		{			POINT pt;			struct FindChildAtPointData fcap;			// workaround for badly coded plugins that do display a context menu			// and pass the message to DefWindowProc afterwards (doing a "break;").			if (GetTickCount() - GetMessageTime()>10)				return 0;			if (idMouseMoveTimer)				KillTimer(NULL, idMouseMoveTimer);			idMouseMoveTimer = 0;			ZeroMemory(&fcap, sizeof(fcap));			POINTSTOPOINT(pt, MAKEPOINTS(lParam));			// ChildWindowFromPoint() messes up with group boxes			fcap.hwnd = NULL;			fcap.pt = pt;			EnumChildWindows(hwndDlg, FindChildAtPointEnumProc, (LPARAM)&fcap);			HWND hwndCtl = fcap.hwnd;			if (hwndCtl == NULL) {				ScreenToClient(hwndDlg, &pt);				hwndCtl = ChildWindowFromPointEx(hwndDlg, pt, CWP_SKIPINVISIBLE);				if (hwndCtl == NULL)					break;				POINTSTOPOINT(pt, MAKEPOINTS(lParam));			}			{				LONG_PTR flags = (LONG_PTR)GetProp(hwndCtl, PROP_CONTEXTSTATE);				if (flags&PROPF_MENUDISABLED)					break;				else if (!(flags&PROPF_MENUFORCED)) {					int type = GetControlType(hwndCtl);					// showing a context menu on these looks silly (multi components)					if (type == CTLTYPE_TOOLBAR || type == CTLTYPE_LISTVIEW || type == CTLTYPE_TREEVIEW || type == CTLTYPE_STATUSBAR || type == CTLTYPE_CLC)						break;				}			}			if (IsRealChild(hwndDlg, hwndCtl)) {				HMENU hMenu = CreatePopupMenu();				AppendMenu(hMenu, MF_STRING, SC_CONTEXTHELP, (hwndCtl == hwndDlg) ? TranslateT("&What's this dialog?") : TranslateT("&What's this?"));				if (TrackPopupMenuEx(hMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_HORPOSANIMATION | TPM_VERPOSANIMATION | TPM_RIGHTBUTTON | TPM_RETURNCMD | TPM_NONOTIFY, pt.x, pt.y, hwndDlg, NULL)) {					if (hwndHelpDlg == NULL) {						hwndHelpDlg = CreateDialog(hInst, MAKEINTRESOURCE(IDD_HELP), NULL, HelpDlgProc);						if (hwndHelpDlg == NULL) {							DestroyMenu(hMenu);							break;						}					}					SendMessage(hwndHelpDlg, M_CHANGEHELPCONTROL, 0, (LPARAM)hwndCtl);				}				DestroyMenu(hMenu);			}			return 0;		}	case WM_HELP:		{			HELPINFO *hi = (HELPINFO*)lParam;			if (hi->iContextType != HELPINFO_WINDOW) break;			// fix for SHBrowseForFolder() dialog, which sends unhandled help to parent			if (!IsRealChild(hwndDlg, (HWND)hi->hItemHandle))				break;			if (idMouseMoveTimer)				KillTimer(NULL, idMouseMoveTimer);			idMouseMoveTimer = 0;			if (!IsWindow(hwndHelpDlg)) {				hwndHelpDlg = CreateDialog(hInst, MAKEINTRESOURCE(IDD_HELP), NULL, HelpDlgProc);				if (hwndHelpDlg == NULL)					break;			}			SendMessage(hwndHelpDlg, M_CHANGEHELPCONTROL, 0, (LPARAM)hi->hItemHandle);			// we need to eat the next WM_LBUTTONDOWN (if invoked by mouse)			if (GetKeyState(GetSystemMetrics(SM_SWAPBUTTON) ? VK_RBUTTON : VK_LBUTTON) & 0x8000 && hEatNextMouseHook == NULL)				hEatNextMouseHook = SetWindowsHookEx(WH_MOUSE, EatNextMouseButtonUpHookProc, NULL, GetCurrentThreadId());			return TRUE;		}	case WM_NCDESTROY:		if (idMouseMoveTimer)			KillTimer(NULL, idMouseMoveTimer);		idMouseMoveTimer = 0;		EnumChildWindows(hwndDlg, RemovePropForAllChildsEnumProc, (LPARAM)PROP_CONTEXTSTATE);		{			TCHAR text[64];			mir_sntprintf(text, _countof(text), _T("unhooked window 0x%X for context help/n"), hwndDlg);			OutputDebugString(text);		}		SetWindowLongPtr(hwndDlg, GWLP_WNDPROC, (LONG_PTR)pfnWndProc);		break;	}	return CallWindowProc(pfnWndProc, hwndDlg, msg, wParam, lParam);}
开发者ID:wyrover,项目名称:miranda-ng,代码行数:101,


示例29: gtk_accel_group_new

void Menu::create(Window *wnd,uint32_t st) {	int i,n;	char str[257];#ifdef USE_WIN32	char buf[5];#ifdef USE_WCHAR	wchar_t wstr[257];#endif#endif	MenuItem *m;#ifdef USE_GTK	GtkAccelGroup *accel_group = gtk_accel_group_new();	gtk_window_add_accel_group(GTK_WINDOW((GtkWindow *)((Window *)parent)->wnd),accel_group);	component = (Component)gtk_menu_bar_new();#endif#ifdef USE_WIN32	component = (Component)CreateMenu();#endif	window = wnd;	for(i=0,m=items; m && i<nitems; ++i) {*str = '/0';for(n=0; n<m->lvl; ++n) strcat(str,"--> ");strcat(str,m->name);debug_output("Menu::create(menu: index=%d,id='%d',parent='%d',child='%d',menuitem='%s')/n",m->index,m->id,m->parent? m->parent->id : -1,m->child? m->child->id : -1,str);#ifdef USE_GTK		if(m->id==-1) {			if(m->parent) {				m->item = gtk_separator_menu_item_new();				gtk_menu_shell_append(GTK_MENU_SHELL((GtkWidget *)m->parent->submenu),m->item);			}		} else {			m->item = gtk_image_menu_item_new_with_label(m->name);			if(m->icon)				gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m->item),GTK_WIDGET(gtk_image_new_from_stock(m->icon,GTK_ICON_SIZE_MENU)));			if(!m->sensitive) gtk_widget_set_sensitive(m->item,false);			if(m->acc!=-1) {				gtk_image_menu_item_set_accel_group(GTK_IMAGE_MENU_ITEM(m->item),accel_group);				gtk_widget_add_accelerator(m->item,"activate",accel_group,m->acc,(GdkModifierType)m->acc_mod,GTK_ACCEL_VISIBLE);			}			if(m->child) {				m->submenu = (Component)gtk_menu_new();				gtk_menu_item_set_submenu(GTK_MENU_ITEM(m->item),m->submenu);			}			if(m->parent) {				gtk_menu_shell_append(GTK_MENU_SHELL(m->parent->submenu),m->item);				if(!m->child) {debug_output("Menu::create(g_signal_connect: %s - %p)/n",m->name,m);					if(event_handler) g_signal_connect(G_OBJECT(m->item),"activate",G_CALLBACK(menuitem_callback),(gpointer)m);				}			} else {				gtk_menu_shell_append(GTK_MENU_SHELL((GtkWidget *)component),m->item);			}		}#endif#ifdef USE_WIN32		if(m->id==-1) {			if(m->parent)				AppendMenu((HMENU)m->parent->submenu,MF_SEPARATOR,0,0);		} else {			strcpy(str,m->name);			if(m->acc!=-1) {				strcat(str,"/t");				if((m->acc_mod&KEY_CONTROL)) strcat(str,"Ctrl-");				if((m->acc_mod&KEY_ALT)) strcat(str,"Alt-");				if((m->acc_mod&KEY_SHIFT)) strcat(str,"Shift-");				if(m->acc>=KEY_a && m->acc<=KEY_z) sprintf(buf,"%c",m->acc);				else if(m->acc>=KEY_F1 && m->acc<=KEY_F12) sprintf(buf,"F%d",m->acc+1-KEY_F1);				strcat(str,buf);			}			if(m->child) {				m->submenu = (Component)CreatePopupMenu();#ifdef USE_WCHAR				char2w(wstr,str,256);debug_output("Menu::create(m: %p, wstr: %ls)/n",m,wstr);				AppendMenu((HMENU)(m->parent? m->parent->submenu : component),MF_STRING|MF_POPUP,(UINT)m->submenu,wstr);#else				AppendMenu((HMENU)(m->parent? m->parent->submenu : component),MF_STRING|MF_POPUP,(UINT)m->submenu,str);#endif			} else if(m->parent) {#ifdef USE_WCHAR				char2w(wstr,str,256);debug_output("Menu::create(m: %p, parent: %p, submenu: %p, wstr: %ls)/n",m,m->parent,m->parent? m->parent->submenu : 0,wstr);				AppendMenu((HMENU)m->parent->submenu,MF_STRING,WIDGET_MAKE_ID(WIDGET_MENU,m->index),wstr);#else				AppendMenu((HMENU)m->parent->submenu,MF_STRING,WIDGET_MAKE_ID(WIDGET_MENU,m->index),str);#endif			}//			if(!m->sensitive) gtk_widget_set_sensitive(m->item,false);//			if(m->acc!=-1) {//				gtk_image_menu_item_set_accel_group(GTK_IMAGE_MENU_ITEM(m->item),accel_group);//				gtk_widget_add_accelerator(m->item,"activate",accel_group,m->acc,(GdkModifierType)m->acc_mod,GTK_ACCEL_VISIBLE);//			}		}#endif//.........这里部分代码省略.........
开发者ID:NikitaSharma28,项目名称:libamanita,代码行数:101,


示例30: mswin_tw_wm_contextmenu

/* * mswin_tw_wm_command() - WM_CONTEXTMENU handler for textwindows */static voidmswin_tw_wm_contextmenu(MSWIN_TEXTWINDOW *mswin_tw, HWND hwnd, HWND hwndContext,    int xPos, int yPos){   HMENU hMenu;    hMenu = CreatePopupMenu();    if(hMenu)    {        int i;        CHARRANGE cr;        MENUITEMINFO mitem;        static const struct        {            UINT wID;            LPTSTR dwTypeData;        } s_popup_menu[] =        {            { IDM_EDIT_COPY,        TEXT("&Copy")        },            { IDM_EDIT_COPY_APPEND, TEXT("Copy &Append") },            { IDM_EDIT_CLEAR,       TEXT("Clea&r")       },        };        memset(&mitem, 0, sizeof(MENUITEMINFO));        mitem.cbSize = sizeof(MENUITEMINFO);        mitem.fMask = MIIM_TYPE | MIIM_ID | MIIM_STATE;        mitem.fType = MFT_STRING;        SendMessage(mswin_tw->hwnd_edit, EM_EXGETSEL, (WPARAM)0, (LPARAM)&cr);        for(i = 0; i < ARRAYSIZE(s_popup_menu); i++)        {            switch(s_popup_menu[i].wID)            {            case IDM_EDIT_CLEAR:                // Only enable it if there is a clear callback set.                mitem.fState = (mswin_tw->clear_callback) ?                     MFS_ENABLED : MFS_GRAYED;                break;            case IDM_EDIT_COPY:            case IDM_EDIT_COPY_APPEND:                // Only enable if there is a selection.                mitem.fState = (cr.cpMax > cr.cpMin) ?                     MFS_ENABLED : MFS_GRAYED;                break;            default:                mitem.fState = MFS_ENABLED;                break;            }                        mitem.wID = s_popup_menu[i].wID;            mitem.dwTypeData = s_popup_menu[i].dwTypeData;            mitem.cch = (UINT)_tcslen(s_popup_menu[i].dwTypeData);            InsertMenuItem(hMenu, i, FALSE, &mitem);        }        TrackPopupMenu(hMenu,               TPM_LEFTALIGN | TPM_TOPALIGN |               TPM_RIGHTBUTTON | TPM_LEFTBUTTON,               xPos, yPos, 0, hwnd, NULL);        DestroyMenu(hMenu);    }}
开发者ID:carriercomm,项目名称:alpine,代码行数:67,



注:本文中的CreatePopupMenu函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ CreateProcessA函数代码示例
C++ CreatePin函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。