这篇教程C++ GetSubMenu函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetSubMenu函数的典型用法代码示例。如果您正苦于以下问题:C++ GetSubMenu函数的具体用法?C++ GetSubMenu怎么用?C++ GetSubMenu使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetSubMenu函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: DlgProcTextINT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam){ RECT rc, pos; HWND button; HMENU hMenu, hMenu1; TCHAR str[4096]; switch (msg) { case WM_INITDIALOG: opt_startup = TRUE; // set windows position, make it top-most GetWindowRect(hdlg, &rc); SetWindowPos(hdlg, HWND_TOPMOST, rc.left, rc.top, 0, 0, SWP_NOSIZE); TranslateDialogDefault(hdlg); // generate the display text for variable list _tcsncpy(str, VAR_LIST_OPT, _countof(str) - 1); SetDlgItemText(hdlg, IDC_VARLIST, str); // make the more variable and other buttons flat SendDlgItemMessage(hdlg, IDC_MORE, BUTTONSETASFLATBTN, TRUE, 0); SendDlgItemMessage(hdlg, IDC_TM1, BUTTONSETASFLATBTN, TRUE, 0); SendDlgItemMessage(hdlg, IDC_TM2, BUTTONSETASFLATBTN, TRUE, 0); SendDlgItemMessage(hdlg, IDC_TM3, BUTTONSETASFLATBTN, TRUE, 0); SendDlgItemMessage(hdlg, IDC_TM4, BUTTONSETASFLATBTN, TRUE, 0); SendDlgItemMessage(hdlg, IDC_TM5, BUTTONSETASFLATBTN, TRUE, 0); SendDlgItemMessage(hdlg, IDC_TM6, BUTTONSETASFLATBTN, TRUE, 0); SendDlgItemMessage(hdlg, IDC_TM7, BUTTONSETASFLATBTN, TRUE, 0); SendDlgItemMessage(hdlg, IDC_TM8, BUTTONSETASFLATBTN, TRUE, 0); SendDlgItemMessage(hdlg, IDC_RESET, BUTTONSETASFLATBTN, TRUE, 0); // load the settings LoadTextSettings(hdlg); opt_startup = FALSE; return TRUE; case WM_COMMAND: if (opt_startup) return TRUE; switch (LOWORD(wParam)) { case IDC_CTEXT: case IDC_BTITLE: case IDC_BTEXT: case IDC_NTEXT: case IDC_XTEXT: case IDC_ETEXT: case IDC_HTEXT: case IDC_BTITLE2: if (HIWORD(wParam) == EN_CHANGE) SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0); break; case IDC_MORE: // display custom variables list MoreVarList(); break; case IDC_TM1: case IDC_TM2: case IDC_TM3: case IDC_TM4: case IDC_TM5: case IDC_TM6: case IDC_TM7: case IDC_TM8: // display the menu button = GetDlgItem(hdlg, LOWORD(wParam)); GetWindowRect(button, &pos); hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_TMMENU)); hMenu1 = GetSubMenu(hMenu, 0); TranslateMenu(hMenu1); switch (TrackPopupMenu(hMenu1, TPM_LEFTBUTTON | TPM_RETURNCMD, pos.left, pos.bottom, 0, hdlg, NULL)) { case ID_MPREVIEW: { // show the preview in a message box, using the weather data from the default station WEATHERINFO winfo = LoadWeatherInfo(opt.DefStn); GetDisplay(&winfo, *var[LOWORD(wParam) - IDC_TM1], str); MessageBox(NULL, str, TranslateT("Weather Protocol Text Preview"), MB_OK | MB_TOPMOST); break; } case ID_MRESET: unsigned varo = LOWORD(wParam) - IDC_TM1; // remove the old setting from db and free memory TCHAR* vartmp = *var[varo]; wfree(&vartmp); SetTextDefault(varname[varo]); SetDlgItemText(hdlg, cname[varo], *var[varo]); break; } DestroyMenu(hMenu); break; case IDC_RESET: // left click action selection menu button = GetDlgItem(hdlg, IDC_RESET); GetWindowRect(button, &pos); hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_TMENU)); hMenu1 = GetSubMenu(hMenu, 0); TranslateMenu(hMenu1); switch (TrackPopupMenu(hMenu1, TPM_LEFTBUTTON | TPM_RETURNCMD, pos.left, pos.bottom, 0, hdlg, NULL)) { case ID_T1: // reset to the strings in memory, discard all changes LoadTextSettings(hdlg); break;//.........这里部分代码省略.........
开发者ID:Seldom,项目名称:miranda-ng,代码行数:101,
示例2: FileDlgProc//.........这里部分代码省略......... break; case WM_NOTIFY: { lPnmhdr = (LPNMHDR)lParam; hList = GetDlgItem(hDlg,IDC_LIST1); if (lPnmhdr->hwndFrom==hList) { switch (lPnmhdr->code) { case NM_DBLCLK: { hList = GetDlgItem(hDlg,IDC_LIST1); int index = ListView_GetSelectionMark(hList); int count = ListView_GetItemCount(hList); char szType[10] = {0}; ListView_GetItemText(hList,index,0,szType,sizeof(szType)); if (strcmp(szType,"FILE")==0) { break; } if (index<count) { char szFile[NAMESIZE] = {0}; char szType[10] = {0}; ListView_GetItemText(hList,index,0,szType,sizeof(szType)); ListView_GetItemText(hList,index,1,szFile,NAMESIZE); FileOpen(sockfd,szFile,szType); } } break; case NM_RCLICK: { HMENU hMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDR_MENU1)); hMenu = GetSubMenu(hMenu,0); POINT stPos; GetCursorPos(&stPos); TrackPopupMenu(hMenu,TPM_LEFTALIGN,stPos.x,stPos.y,NULL,hDlg,NULL); } break; } } } break; case WM_INITMENUPOPUP: { switch(LOWORD(lParam)) { case 0: { //文件禁用:打开(EXE不禁用) //文件夹禁用:下载 //盘符禁用:返回 hList = GetDlgItem(hDlg,IDC_LIST1); int index = ListView_GetSelectionMark(hList); int count = ListView_GetItemCount(hList); if (index>=count && strlen(szTempPath)==0) { EnableMenuItem((HMENU)wParam,ID_POPUP_40001,MF_GRAYED); EnableMenuItem((HMENU)wParam,ID_POPUP_40002,MF_GRAYED); EnableMenuItem((HMENU)wParam,ID_POPUP_40004,MF_GRAYED); EnableMenuItem((HMENU)wParam,ID_POPUP_40005,MF_GRAYED); } else if (index>=count) { EnableMenuItem((HMENU)wParam,ID_POPUP_40001,MF_GRAYED); EnableMenuItem((HMENU)wParam,ID_POPUP_40002,MF_ENABLED);
开发者ID:drupalhunter,项目名称:HackCollect,代码行数:67,
示例3: MenuDrawProc//.........这里部分代码省略......... break;// case WM_LBUTTONUP: case WM_MBUTTONUP: case WM_MBUTTONDOWN: case WM_RBUTTONDBLCLK: case WM_MBUTTONDBLCLK: case WM_RBUTTONUP: SetFocus(hwnd); return 1; case WM_PAINT: menuData = (struct resRes *)GetWindowLong(hwnd, 0); GetClientRect(hwnd, &r); dc = BeginPaint(hwnd, &paint); DoPaint(hwnd, dc, &paint, &r, menuData); EndPaint(hwnd, &paint); break; case WM_RBUTTONDOWN: menuData = (struct resRes *)GetWindowLong(hwnd, 0); SendMessage(hwnd, WM_COMMAND, ID_EDIT + (EN_KILLFOCUS << 16), 0); mouse.x = LOWORD(lParam); mouse.y = HIWORD(lParam); i = menuHitTest(hwnd, menuData, mouse); if (i) { HMENU menu, popup; SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(ID_EDIT, CBN_KILLFOCUS), 0); menu = LoadMenuGeneric(hInstance, "RESMENUMENU"); if (i & 2) EnableMenuItem(menu, IDM_DELETE, MF_BYCOMMAND | MF_GRAYED); if (i & 4) EnableMenuItem(menu, IDM_INSERT_SEPARATOR, MF_BYCOMMAND | MF_GRAYED); menuData->gd.selectedRow = mouse.y + menuData->gd.scrollPos.y; menuData->gd.selectedColumn = mouse.x + menuData->gd.scrollPos.x; popup = GetSubMenu(menu, 0); ClientToScreen(hwnd, &mouse); InsertBitmapsInMenu(popup); TrackPopupMenuEx(popup, TPM_TOPALIGN | TPM_LEFTALIGN | TPM_LEFTBUTTON, mouse.x, mouse.y, hwnd, NULL); DestroyMenu(menu); } return 1; case WM_LBUTTONDBLCLK: SendMessage(hwnd, WM_COMMAND, ID_EDIT + (EN_KILLFOCUS << 16), 0); SetFocus(hwnd); menuData = (struct resRes *)GetWindowLong(hwnd, 0); mouse.x = LOWORD(lParam); mouse.y = HIWORD(lParam); SelectSubmenu(hwnd, menuData, mouse, TRUE); break; case WM_MOUSEMOVE: if (dragging) { menuData = (struct resRes *)GetWindowLong(hwnd, 0); mouse.x = LOWORD(lParam); mouse.y = HIWORD(lParam); menuData->gd.selectedMenu = start; i = menuHitTest(hwnd, menuData, mouse); if (!oldcurs) oldcurs = GetCursor(); SetCursor(i & 8 ? dragCur : noCur); } break; case WM_LBUTTONDOWN: SetFocus(hwnd); menuData = (struct resRes *)GetWindowLong(hwnd, 0); SendMessage(hwnd, WM_COMMAND, ID_EDIT + (EN_KILLFOCUS << 16), 0);
开发者ID:jossk,项目名称:OrangeC,代码行数:67,
示例4: WepWindowsDlgProc//.........这里部分代码省略......... } break; case WM_COMMAND: { switch (LOWORD(wParam)) { case IDCANCEL: //case IDOK: DestroyWindow(hwndDlg); break; case IDC_REFRESH: WepRefreshWindows(context); break; case ID_SHOWCONTEXTMENU: { POINT point; PWE_WINDOW_NODE *windows; ULONG numberOfWindows; HMENU menu; HMENU subMenu; point.x = (SHORT)LOWORD(lParam); point.y = (SHORT)HIWORD(lParam); WeGetSelectedWindowNodes( &context->TreeContext, &windows, &numberOfWindows ); if (numberOfWindows != 0) { menu = LoadMenu(PluginInstance->DllBase, MAKEINTRESOURCE(IDR_WINDOW)); subMenu = GetSubMenu(menu, 0); SetMenuDefaultItem(subMenu, ID_WINDOW_PROPERTIES, FALSE); if (numberOfWindows == 1) { WINDOWPLACEMENT placement = { sizeof(placement) }; BYTE alpha; ULONG flags; ULONG i; ULONG id; // State GetWindowPlacement(windows[0]->WindowHandle, &placement); if (placement.showCmd == SW_MINIMIZE) PhEnableMenuItem(subMenu, ID_WINDOW_MINIMIZE, FALSE); else if (placement.showCmd == SW_MAXIMIZE) PhEnableMenuItem(subMenu, ID_WINDOW_MAXIMIZE, FALSE); else if (placement.showCmd == SW_NORMAL) PhEnableMenuItem(subMenu, ID_WINDOW_RESTORE, FALSE); // Visible CheckMenuItem(subMenu, ID_WINDOW_VISIBLE, (GetWindowLong(windows[0]->WindowHandle, GWL_STYLE) & WS_VISIBLE) ? MF_CHECKED : MF_UNCHECKED); // Enabled CheckMenuItem(subMenu, ID_WINDOW_ENABLED, !(GetWindowLong(windows[0]->WindowHandle, GWL_STYLE) & WS_DISABLED) ? MF_CHECKED : MF_UNCHECKED); // Always on Top
开发者ID:JamesLinus,项目名称:processhacker_2.33,代码行数:67,
示例5: GetWindowLong//.........这里部分代码省略......... ListView_SetBkColor( nav->mTree, GetSysColor( COLOR_3DFACE ) ); ListView_SetTextBkColor( nav->mTree, GetSysColor( COLOR_3DFACE ) ); nav->mListWndProc = ( WNDPROC )GetWindowLong( nav->mTree, GWL_WNDPROC ); SetWindowLong( nav->mTree, GWL_USERDATA, ( LONG )nav ); SetWindowLong( nav->mTree, GWL_WNDPROC, ( LONG )ListWndProc ); // Insert the only column col.mask = 0; ListView_InsertColumn( nav->mTree, 0, &col ); break; } case WM_SIZE: { RECT rClient; MoveWindow( nav->mTree, 0, 0, LOWORD( lParam ), HIWORD( lParam ), TRUE ); GetClientRect( nav->mTree, &rClient ); ListView_SetColumnWidth( nav->mTree, 0, rClient.right - rClient.left - 1 ); break; } case WM_NCACTIVATE: return gApp.ToolWindowActivate( gApp.GetMDIFrame(), msg, wParam, lParam ); case WM_NOTIFY: { LPNMHDR nh; nh = ( LPNMHDR ) lParam; switch( nh->code ) { case NM_CLICK: case NM_DBLCLK: { DWORD dwpos = GetMessagePos(); LVHITTESTINFO info; info.pt.x = LOWORD( dwpos ); info.pt.y = HIWORD( dwpos ); MapWindowPoints( HWND_DESKTOP, nh->hwndFrom, &info.pt, 1 ); int index = ListView_HitTest( nav->mTree, &info ); if( index != -1 ) { RECT rItem; int offset; ListView_GetItemRect( nav->mTree, index, &rItem, LVIR_BOUNDS ); LVITEM item; item.mask = LVIF_PARAM; item.iItem = index; ListView_GetItem( nav->mTree, &item ); idWindow *window = ( idWindow * )item.lParam; rvGEWindowWrapper *wrapper = rvGEWindowWrapper::GetWrapper( window ); offset = wrapper->GetDepth( ) * 10 + 1; if( info.pt.x < GENAV_ITEMHEIGHT ) { if( !rvGEWindowWrapper::GetWrapper( window )->IsHidden( ) ) { nav->mWorkspace->HideWindow( window ); } else { nav->mWorkspace->UnhideWindow( window ); } } else if( info.pt.x > GENAV_ITEMHEIGHT + offset && info.pt.x < GENAV_ITEMHEIGHT + offset + 16 ) { if( wrapper->CanHaveChildren( ) && window->GetChildCount( ) ) { if( wrapper->IsExpanded( ) ) { wrapper->Collapse( ); nav->Update( ); } else { wrapper->Expand( ); nav->Update( ); } } } else if( nh->code == NM_DBLCLK ) { SendMessage( gApp.GetMDIFrame( ), WM_COMMAND, MAKELONG( ID_GUIED_ITEM_PROPERTIES, 0 ), 0 ); } } break; } case NM_RCLICK: { DWORD dwpos = GetMessagePos(); LVHITTESTINFO info; info.pt.x = LOWORD( dwpos ); info.pt.y = HIWORD( dwpos ); MapWindowPoints( HWND_DESKTOP, nh->hwndFrom, &info.pt, 1 ); int index = ListView_HitTest( nav->mTree, &info ); if( index != -1 ) { ClientToScreen( hWnd, &info.pt ); HMENU menu = GetSubMenu( LoadMenu( gApp.GetInstance(), MAKEINTRESOURCE( IDR_GUIED_ITEM_POPUP ) ), 0 ); TrackPopupMenu( menu, TPM_RIGHTBUTTON | TPM_LEFTALIGN, info.pt.x, info.pt.y, 0, gApp.GetMDIFrame( ), NULL ); DestroyMenu( menu ); } break; } case LVN_ITEMCHANGED: { NMLISTVIEW *nml = ( NMLISTVIEW * ) nh; if( ( nml->uNewState & LVIS_SELECTED ) != ( nml->uOldState & LVIS_SELECTED ) ) { LVITEM item; item.iItem = nml->iItem; item.mask = LVIF_PARAM; ListView_GetItem( nav->mTree, &item ); if( nml->uNewState & LVIS_SELECTED ) { nav->mWorkspace->GetSelectionMgr().Add( ( idWindow * )item.lParam, false ); } else { nav->mWorkspace->GetSelectionMgr().Remove( ( idWindow * )item.lParam ); } } break; } } break; } } return DefWindowProc( hWnd, msg, wParam, lParam );}
开发者ID:SL987654,项目名称:The-Darkmod-Experimental,代码行数:101,
示例6: MessageBoxbool CConEmuInside::TurnExplorerTipPane(wchar_t (&szAddMsg)[128]){ bool bRepeat = false; int nBtn = IDCANCEL; DWORD_PTR nRc; LRESULT lSendRc; if (gnOsVer < 0x600) { // WinXP, Win2k3 nBtn = IDYES; // MessageBox(L"Tip pane is not found in Explorer window!/nThis pane is required for 'ConEmu Inside' mode./nDo you want to show this pane?", MB_ICONQUESTION|MB_YESNO); if (nBtn == IDYES) { #if 0 HWND hWorker = GetDlgItem(mh_InsideParentRoot, 0xA005); #ifdef _DEBUG if (hWorker) { HWND hReBar = FindWindowEx(hWorker, NULL, L"ReBarWindow32", NULL); if (hReBar) { POINT pt = {4,4}; HWND hTool = ChildWindowFromPoint(hReBar, pt); if (hTool) { //TBBUTTON tb = {}; //lSendRc = SendMessageTimeout(mh_InsideParentRoot, TB_GETBUTTON, 2, (LPARAM)&tb, SMTO_NOTIMEOUTIFNOTHUNG, 500, &nRc); //if (tb.idCommand) //{ // NMTOOLBAR nm = {{hTool, 0, TBN_DROPDOWN}, 32896/*tb.idCommand*/}; // lSendRc = SendMessageTimeout(mh_InsideParentRoot, WM_NOTIFY, 0, (LPARAM)&nm, SMTO_NOTIMEOUTIFNOTHUNG, 500, &nRc); //} lSendRc = SendMessageTimeout(mh_InsideParentRoot, WM_COMMAND, 32896, 0, SMTO_NOTIMEOUTIFNOTHUNG, 500, &nRc); } } } // There is no way to force "Tip pane" in WinXP // if popup menu "View -> Explorer bar" was not _shown_ at least once // In that case, Explorer ignores WM_COMMAND(41536) and does not reveal tip pane. HMENU hMenu1 = GetMenu(mh_InsideParentRoot), hMenu2 = NULL, hMenu3 = NULL; if (hMenu1) { hMenu2 = GetSubMenu(hMenu1, 2); //if (!hMenu2) //{ // lSendRc = SendMessageTimeout(mh_InsideParentRoot, WM_MENUSELECT, MAKELONG(2,MF_POPUP), (LPARAM)hMenu1, SMTO_NOTIMEOUTIFNOTHUNG, 1500, &nRc); // hMenu2 = GetSubMenu(hMenu1, 2); //} if (hMenu2) { hMenu3 = GetSubMenu(hMenu2, 2); } } #endif #endif //INPUT keys[4] = {INPUT_KEYBOARD,INPUT_KEYBOARD,INPUT_KEYBOARD,INPUT_KEYBOARD}; //keys[0].ki.wVk = VK_F10; keys[0].ki.dwFlags = 0; //keys[0].ki.wScan = MapVirtualKey(VK_F10,MAPVK_VK_TO_VSC); //keys[1].ki.wVk = VK_F10; keys[1].ki.dwFlags = KEYEVENTF_KEYUP; //keys[0].ki.wScan = MapVirtualKey(VK_F10,MAPVK_VK_TO_VSC); //keys[1].ki.wVk = 'V'; //keys[2].ki.wVk = 'E'; //keys[3].ki.wVk = 'T'; //LRESULT lSentRc = 0; //SetForegroundWindow(mh_InsideParentRoot); //LRESULT lSentRc = SendInput(2/*countof(keys)*/, keys, sizeof(keys[0])); //lSentRc = SendMessageTimeout(mh_InsideParentRoot, WM_SYSKEYUP, 'V', 0, SMTO_NOTIMEOUTIFNOTHUNG, 5000, &nRc); lSendRc = SendMessageTimeout(mh_InsideParentRoot, WM_COMMAND, EMID_TIPOFDAY/*41536*/, 0, SMTO_NOTIMEOUTIFNOTHUNG, 5000, &nRc); UNREFERENCED_PARAMETER(lSendRc); mb_InsidePaneWasForced = true; // Подготовим сообщение если не удастся wcscpy_c(szAddMsg, L"Forcing Explorer to show Tip pane failed./nShow pane yourself and recall ConEmu./n/n"); } } if (nBtn == IDYES) { // Первая проверка mh_InsideParentWND = mh_InsideParentRel = NULL; m_InsideIntegration = ii_Auto; InsideFindShellView(mh_InsideParentRoot); if (mh_InsideParentWND && mh_InsideParentRel) { bRepeat = true; goto wrap; } // Если не нашли - задержка и повторная проверка Sleep(500); mh_InsideParentWND = mh_InsideParentRel = NULL; m_InsideIntegration = ii_Auto; InsideFindShellView(mh_InsideParentRoot); if (mh_InsideParentWND && mh_InsideParentRel) { bRepeat = true;//.........这里部分代码省略.........
开发者ID:Alexander-Shukaev,项目名称:ConEmu,代码行数:101,
示例7: WinMainint 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,
示例8: GetSubMenuvoid TrayIcon::OnContextMenu(){ HMENU hMenu, hmenuTrackPopup; POINT pt; HRESULT res; int i; Desktop * desk; //Get the "base" menu hMenu = Locale::GetInstance().LoadMenu(IDC_VIRTUALDIMENSION); if (hMenu == NULL) return; hmenuTrackPopup = GetSubMenu(hMenu, 0); //Append the list of desktops InsertMenu(hmenuTrackPopup, 0, MF_BYPOSITION | MF_SEPARATOR, 0, 0); i = 0; for( desk = deskMan->GetFirstDesktop(); desk != NULL; desk = deskMan->GetNextDesktop()) { MENUITEMINFO mii; mii.cbSize = sizeof(mii); mii.fMask = MIIM_STATE | MIIM_STRING | MIIM_ID | MIIM_DATA; if (desk->IsActive()) mii.fState = MFS_CHECKED; else mii.fState = MFS_UNCHECKED; mii.dwItemData = (DWORD_PTR)desk; mii.dwTypeData = desk->GetText(); mii.cch = (UINT)_tcslen(mii.dwTypeData); mii.wID = WM_USER + i++; InsertMenuItem(hmenuTrackPopup, 0, TRUE, &mii); } //And show the menu GetCursorPos(&pt); SetForegroundWindow(m_hWnd); res = TrackPopupMenu(hmenuTrackPopup, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, m_hWnd, NULL); //Process the resulting message if (res >= WM_USER) { Desktop * desk; MENUITEMINFO mii; mii.cbSize = sizeof(mii); mii.fMask = MIIM_DATA; GetMenuItemInfo(hmenuTrackPopup, res, FALSE, &mii); desk = (Desktop*)mii.dwItemData; deskMan->SwitchToDesktop(desk); InvalidateRect(m_hWnd, NULL, TRUE); } else PostMessage(m_hWnd, WM_COMMAND, res, 0); //Do not forget to destroy the menu DestroyMenu(hMenu);}
开发者ID:HaijinW,项目名称:VirtualDimension,代码行数:62,
示例9: OnCreate//.........这里部分代码省略......... item.mask = TCIF_TEXT; item.pszText = wszPerformance; SendMessageW(hTabWnd, TCM_INSERTITEMW, 2, (LPARAM)&item); /* Size everything correctly */ GetClientRect(hWnd, &rc); nOldWidth = rc.right; nOldHeight = rc.bottom; /* nOldStartX = rc.left; */ /*nOldStartY = rc.top; */#define PAGE_OFFSET_LEFT 17#define PAGE_OFFSET_TOP 72#define PAGE_OFFSET_WIDTH (PAGE_OFFSET_LEFT*2)#define PAGE_OFFSET_HEIGHT (PAGE_OFFSET_TOP+32) if ((TaskManagerSettings.Left != 0) || (TaskManagerSettings.Top != 0) || (TaskManagerSettings.Right != 0) || (TaskManagerSettings.Bottom != 0)) { MoveWindow(hWnd, TaskManagerSettings.Left, TaskManagerSettings.Top, TaskManagerSettings.Right - TaskManagerSettings.Left, TaskManagerSettings.Bottom - TaskManagerSettings.Top, TRUE);#ifdef __GNUC__TEST__ MoveWindow(hApplicationPage, TaskManagerSettings.Left + PAGE_OFFSET_LEFT, TaskManagerSettings.Top + PAGE_OFFSET_TOP, TaskManagerSettings.Right - TaskManagerSettings.Left - PAGE_OFFSET_WIDTH, TaskManagerSettings.Bottom - TaskManagerSettings.Top - PAGE_OFFSET_HEIGHT, FALSE); MoveWindow(hProcessPage, TaskManagerSettings.Left + PAGE_OFFSET_LEFT, TaskManagerSettings.Top + PAGE_OFFSET_TOP, TaskManagerSettings.Right - TaskManagerSettings.Left - PAGE_OFFSET_WIDTH, TaskManagerSettings.Bottom - TaskManagerSettings.Top - PAGE_OFFSET_HEIGHT, FALSE); MoveWindow(hPerformancePage, TaskManagerSettings.Left + PAGE_OFFSET_LEFT, TaskManagerSettings.Top + PAGE_OFFSET_TOP, TaskManagerSettings.Right - TaskManagerSettings.Left - PAGE_OFFSET_WIDTH, TaskManagerSettings.Bottom - TaskManagerSettings.Top - PAGE_OFFSET_HEIGHT, FALSE);#endif } if (TaskManagerSettings.Maximized) ShowWindow(hWnd, SW_MAXIMIZE); /* Set the always on top style */ hMenu = GetMenu(hWnd); hEditMenu = GetSubMenu(hMenu, 1); hViewMenu = GetSubMenu(hMenu, 2); hUpdateSpeedMenu = GetSubMenu(hViewMenu, 1); hCPUHistoryMenu = GetSubMenu(hViewMenu, 7); /* Check or uncheck the always on top menu item */ if (TaskManagerSettings.AlwaysOnTop) { CheckMenuItem(hEditMenu, ID_OPTIONS_ALWAYSONTOP, MF_BYCOMMAND|MF_CHECKED); SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); } else { CheckMenuItem(hEditMenu, ID_OPTIONS_ALWAYSONTOP, MF_BYCOMMAND|MF_UNCHECKED); SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); } /* Check or uncheck the minimize on use menu item */ if (TaskManagerSettings.MinimizeOnUse) CheckMenuItem(hEditMenu, ID_OPTIONS_MINIMIZEONUSE, MF_BYCOMMAND|MF_CHECKED); else CheckMenuItem(hEditMenu, ID_OPTIONS_MINIMIZEONUSE, MF_BYCOMMAND|MF_UNCHECKED); /* Check or uncheck the hide when minimized menu item */ if (TaskManagerSettings.HideWhenMinimized) CheckMenuItem(hEditMenu, ID_OPTIONS_HIDEWHENMINIMIZED, MF_BYCOMMAND|MF_CHECKED); else CheckMenuItem(hEditMenu, ID_OPTIONS_HIDEWHENMINIMIZED, MF_BYCOMMAND|MF_UNCHECKED); /* Check or uncheck the show 16-bit tasks menu item */ if (TaskManagerSettings.Show16BitTasks) CheckMenuItem(hEditMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND|MF_CHECKED); else CheckMenuItem(hEditMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND|MF_UNCHECKED); if (TaskManagerSettings.View_LargeIcons)
开发者ID:Sunmonds,项目名称:wine,代码行数:67,
示例10: DlgProcDisplayData//.........这里部分代码省略......... SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BUTTONSETASFLATBTN, 0, 0); SendDlgItemMessage(hwndDlg, IDC_UPDATE_BUTTON, BUTTONSETASFLATBTN, 0, 0); SendDlgItemMessage(hwndDlg, IDC_FIND_BUTTON, BUTTONSETASFLATBTN, 0, 0); SendDlgItemMessage(hwndDlg, IDC_OPTIONS_BUTTON, BUTTONSETASFLATBTN, 0, 0); SendDlgItemMessage(hwndDlg, IDC_ALERT_BUTTON, BUTTONSETASFLATBTN, 0, 0); SendDlgItemMessage(hwndDlg, IDC_STOP, BUTTONSETASFLATBTN, 0, 0); SendDlgItemMessage(hwndDlg, IDC_OPEN_URL, BUTTONSETASFLATBTN, 0, 0); HDC hdc = GetDC(GetDlgItem(hwndDlg, IDC_STATUSBAR)); SelectObject(hdc, (HFONT) SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, WM_GETFONT, 0, 0)); SIZE textSize; GetTextExtentPoint32(hdc, tszSizeString, _countof(tszSizeString), &textSize); int partWidth[2] = { textSize.cx, -1 }; ReleaseDC(GetDlgItem(hwndDlg, IDC_STATUSBAR), hdc); SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, SB_SETPARTS, _countof(partWidth), (LPARAM)partWidth); SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, SB_SETTEXT, 1 | SBT_OWNERDRAW, 0); if ( db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0)) Utils_RestoreWindowPosition(hwndDlg, hContact2, MODULENAME, "WV"); } break; case WM_NOTIFY: switch (((NMHDR *) lParam)->code) { case EN_MSGFILTER: switch (((MSGFILTER *) lParam)->msg) { case WM_RBUTTONUP: { POINT pt; CHARRANGE sel, all = {0, -1}; HMENU hSubMenu = GetSubMenu(hMenu, 0); TranslateMenu(hSubMenu); SendMessage(((NMHDR *) lParam)->hwndFrom, EM_EXGETSEL, 0, (LPARAM) & sel); EnableMenuItem(hSubMenu, IDM_COPY, MF_ENABLED); EnableMenuItem(hSubMenu, IDM_CUT, MF_ENABLED); EnableMenuItem(hSubMenu, IDM_DELETE, MF_ENABLED); if (sel.cpMin == sel.cpMax) { EnableMenuItem(hSubMenu, IDM_COPY, MF_BYCOMMAND | MF_GRAYED); EnableMenuItem(hSubMenu, IDM_CUT, MF_BYCOMMAND | MF_GRAYED); EnableMenuItem(hSubMenu, IDM_DELETE, MF_BYCOMMAND | MF_GRAYED); } pt.x = (short) LOWORD(((ENLINK *) lParam)->lParam); pt.y = (short) HIWORD(((ENLINK *) lParam)->lParam); ClientToScreen(((NMHDR *) lParam)->hwndFrom, &pt); switch (TrackPopupMenu(hSubMenu, TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, NULL)) { case IDM_COPY: SendMessage(((NMHDR *) lParam)->hwndFrom, WM_COPY, 0, 0); break; case IDM_COPYALL: SendMessage(((NMHDR *) lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM) & all); SendMessage(((NMHDR *) lParam)->hwndFrom, WM_COPY, 0, 0); SendMessage(((NMHDR *) lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM) & sel); break; case IDM_SELECTALL: SendMessage(((NMHDR *) lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM) & all); break; case IDM_CUT: SendMessage(((NMHDR *) lParam)->hwndFrom, WM_CUT, 0, 0);
开发者ID:kmdtukl,项目名称:miranda-ng,代码行数:67,
示例11: __glutWindowProc//.........这里部分代码省略......... CPU spiking when an idle function is installed. */ if (wParam == 2) return 0;#endif /* only worry about the idle function and the timeouts, since these are the only events we expect to process during processing of a menu. */ /* we no longer process the idle functions (as outlined in the README), since drawing can't be done until the menu has finished...it's pretty lame when the animation goes on, but doesn't update, so you get this weird jerkiness. */#if 0 if (__glutIdleFunc) __glutIdleFunc();#endif if (__glutTimerList) handleTimeouts(); return 0; case WM_EXITMENULOOP: /* nuke the above created timer...we don't need it anymore, since the menu is gone now. */ KillTimer(hwnd, 1); return 0; case WM_MENUSELECT: if (lParam != 0) __glutHMenu = (HMENU)lParam; return 0; case WM_COMMAND: if (__glutMappedMenu) { if (GetSubMenu(__glutHMenu, LOWORD(wParam))) __glutItemSelected = NULL; else __glutItemSelected = __glutGetUniqueMenuItem(__glutMappedMenu, LOWORD(wParam)); GetCursorPos(&point); ScreenToClient(hwnd, &point); __glutFinishMenu(hwnd, point.x, point.y); } return 0; case WM_MOUSEMOVE: if (!__glutMappedMenu) { window = __glutGetWindow(hwnd); if (window) { /* If motion function registered _and_ buttons held * down, call motion function... */ x = LOWORD(lParam); y = HIWORD(lParam); /* Win32 doesn't return the same numbers as X does when the mouse goes beyond the upper or left side of the window. roll the Win32's 0..2^16 pointer co-ord range to 0..+/-2^15. */ if(x & 1 << 15) x -= (1 << 16); if(y & 1 << 15) y -= (1 << 16); if (window->motion && wParam & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON)) { __glutSetWindow(window); window->motion(x, y); } /* If passive motion function registered _and_ buttons not held down, call passive motion
开发者ID:hiteshsathawane,项目名称:Cube-Rotation,代码行数:67,
示例12: WinObjExMain//.........这里部分代码省略......... break; g_hwndObjectList = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, NULL, WS_VISIBLE | WS_CHILD | WS_TABSTOP | LVS_AUTOARRANGE | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | LVS_SHAREIMAGELISTS, 0, 0, 0, 0, MainWindow, (HMENU)1003, g_WinObj.hInstance, NULL); if (g_hwndObjectList == NULL) break; hwndToolBar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_VISIBLE | WS_CHILD | CCS_TOP | TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_TOOLTIPS, 0, 0, 0, 0, MainWindow, (HMENU)1004, g_WinObj.hInstance, NULL); if (hwndToolBar == NULL) break; hwndSplitter = CreateWindowEx(0, WC_STATIC, NULL, WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, MainWindow, (HMENU)1005, g_WinObj.hInstance, NULL); // initialization of views SendMessage(MainWindow, WM_SIZE, 0, 0); ListView_SetExtendedListViewStyle(g_hwndObjectList, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_LABELTIP | LVS_EX_DOUBLEBUFFER); // set tree imagelist TreeViewImages = supLoadImageList(g_WinObj.hInstance, IDI_ICON_VIEW_DEFAULT, IDI_ICON_VIEW_SELECTED); if (TreeViewImages) { TreeView_SetImageList(g_hwndObjectTree, TreeViewImages, TVSIL_NORMAL); } //not enough user rights, insert run as admin menu entry and hide admin only stuff if ((IsFullAdmin == FALSE) && (g_kdctx.IsWine == FALSE)) { hMenu = GetSubMenu(GetMenu(MainWindow), 0); InsertMenu(hMenu, 0, MF_BYPOSITION, ID_FILE_RUNASADMIN, T_RUNASADMIN); InsertMenu(hMenu, 1, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); //set menu shield icon RtlSecureZeroMemory(&sii, sizeof(sii)); sii.cbSize = sizeof(sii); if (SHGetStockIconInfo(SIID_SHIELD, SHGSI_ICON | SHGFI_SMALLICON, &sii) == S_OK) { supSetMenuIcon(hMenu, ID_FILE_RUNASADMIN, (ULONG_PTR)sii.hIcon); } } if (g_kdctx.hDevice == NULL) { //require driver usage, remove DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_SSDT, MF_BYCOMMAND); DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_PRIVATENAMESPACES, MF_BYCOMMAND); } //unsupported if (g_WinObj.osver.dwBuildNumber > 10240) { DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_PRIVATENAMESPACES, MF_BYCOMMAND); } //wine unsupported if (g_kdctx.IsWine != FALSE) { DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_DRIVERS, MF_BYCOMMAND); } //load listview images g_ListViewImages = supLoadImageList(g_WinObj.hInstance, IDI_ICON_DEVICE, IDI_ICON_UNKNOWN); if (g_ListViewImages) { hIcon = LoadImage(g_WinObj.hInstance, MAKEINTRESOURCE(IDI_ICON_SORTUP), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR); if (hIcon) { ImageList_ReplaceIcon(g_ListViewImages, -1, hIcon);
开发者ID:songbei6,项目名称:WinObjEx64,代码行数:67,
示例13: PhpFindObjectsDlgProc//.........这里部分代码省略......... break; case VK_DELETE: SendMessage(hwndDlg, WM_COMMAND, ID_OBJECT_CLOSE, 0); break; } } } break; } } break; case WM_CONTEXTMENU: { if ((HWND)wParam == PhFindObjectsListViewHandle) { POINT point; PPHP_OBJECT_SEARCH_RESULT *results; ULONG numberOfResults; point.x = (SHORT)LOWORD(lParam); point.y = (SHORT)HIWORD(lParam); if (point.x == -1 && point.y == -1) PhGetListViewContextMenuPoint((HWND)wParam, &point); PhGetSelectedListViewItemParams(PhFindObjectsListViewHandle, &results, &numberOfResults); if (numberOfResults != 0) { HMENU menu; HMENU subMenu; menu = LoadMenu(PhInstanceHandle, MAKEINTRESOURCE(IDR_FINDOBJ)); subMenu = GetSubMenu(menu, 0); SetMenuDefaultItem(subMenu, ID_OBJECT_PROPERTIES, FALSE); PhpInitializeFindObjMenu( subMenu, results, numberOfResults ); PhShowContextMenu( hwndDlg, PhFindObjectsListViewHandle, subMenu, point ); DestroyMenu(menu); } PhFree(results); } } break; case WM_SIZE: { PhLayoutManagerLayout(&WindowLayoutManager); } break; case WM_SIZING: { PhResizingMinimumSize((PRECT)lParam, wParam, MinimumSize.right, MinimumSize.bottom); } break; case WM_PH_SEARCH_UPDATE:
开发者ID:john-peterson,项目名称:processhacker,代码行数:67,
示例14: createWindowvoidCMSWindowsClientTaskBarReceiver::runMenu(int x, int y){ // do popup menu. we need a window to pass to TrackPopupMenu(). // the SetForegroundWindow() and SendMessage() calls around // TrackPopupMenu() are to get the menu to be dismissed when // another window gets activated and are just one of those // win32 weirdnesses. createWindow(); SetForegroundWindow(m_window); HMENU menu = GetSubMenu(m_menu, 0); SetMenuDefaultItem(menu, IDC_TASKBAR_STATUS, FALSE); HMENU logLevelMenu = GetSubMenu(menu, 3); CheckMenuRadioItem(logLevelMenu, 0, 6, CLOG->getFilter() - kERROR, MF_BYPOSITION); int n = TrackPopupMenu(menu, TPM_NONOTIFY | TPM_RETURNCMD | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, x, y, 0, m_window, NULL); SendMessage(m_window, WM_NULL, 0, 0); // perform the requested operation switch (n) { case IDC_TASKBAR_STATUS: showStatus(); break; case IDC_TASKBAR_LOG: copyLog(); break; case IDC_TASKBAR_SHOW_LOG: ARCH->showConsole(true); break; case IDC_TASKBAR_LOG_LEVEL_ERROR: CLOG->setFilter(kERROR); break; case IDC_TASKBAR_LOG_LEVEL_WARNING: CLOG->setFilter(kWARNING); break; case IDC_TASKBAR_LOG_LEVEL_NOTE: CLOG->setFilter(kNOTE); break; case IDC_TASKBAR_LOG_LEVEL_INFO: CLOG->setFilter(kINFO); break; case IDC_TASKBAR_LOG_LEVEL_DEBUG: CLOG->setFilter(kDEBUG); break; case IDC_TASKBAR_LOG_LEVEL_DEBUG1: CLOG->setFilter(kDEBUG1); break; case IDC_TASKBAR_LOG_LEVEL_DEBUG2: CLOG->setFilter(kDEBUG2); break; case IDC_TASKBAR_QUIT: quit(); break; }}
开发者ID:dbkr,项目名称:synergy-onnaf,代码行数:70,
示例15: createWindowvoidCMSWindowsServerTaskBarReceiver::runMenu(int x, int y){ // do popup menu. we need a window to pass to TrackPopupMenu(). // the SetForegroundWindow() and SendMessage() calls around // TrackPopupMenu() are to get the menu to be dismissed when // another window gets activated and are just one of those // win32 weirdnesses. createWindow(); SetForegroundWindow(m_window); HMENU menu = GetSubMenu(m_menu, 0); SetMenuDefaultItem(menu, IDC_TASKBAR_STATUS, FALSE); HMENU logLevelMenu = GetSubMenu(menu, 3); CheckMenuRadioItem(logLevelMenu, 0, 6, CLOG->getFilter() - CLog::kERROR, MF_BYPOSITION); int n = TrackPopupMenu(menu, TPM_NONOTIFY | TPM_RETURNCMD | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, x, y, 0, m_window, NULL); SendMessage(m_window, WM_NULL, 0, 0); // perform the requested operation switch (n) { case IDC_TASKBAR_STATUS: showStatus(); break; case IDC_TASKBAR_LOG: copyLog(); break; case IDC_TASKBAR_SHOW_LOG: ARCH->showConsole(true); break; case IDC_RELOAD_CONFIG: EVENTQUEUE->addEvent(CEvent(getReloadConfigEvent(), IEventQueue::getSystemTarget())); break; case IDC_FORCE_RECONNECT: EVENTQUEUE->addEvent(CEvent(getForceReconnectEvent(), IEventQueue::getSystemTarget())); break; case ID_SYNERGY_RESETSERVER: EVENTQUEUE->addEvent(CEvent(getResetServerEvent(), IEventQueue::getSystemTarget())); break; case IDC_TASKBAR_LOG_LEVEL_ERROR: CLOG->setFilter(CLog::kERROR); break; case IDC_TASKBAR_LOG_LEVEL_WARNING: CLOG->setFilter(CLog::kWARNING); break; case IDC_TASKBAR_LOG_LEVEL_NOTE: CLOG->setFilter(CLog::kNOTE); break; case IDC_TASKBAR_LOG_LEVEL_INFO: CLOG->setFilter(CLog::kINFO); break; case IDC_TASKBAR_LOG_LEVEL_DEBUG: CLOG->setFilter(CLog::kDEBUG); break; case IDC_TASKBAR_LOG_LEVEL_DEBUG1: CLOG->setFilter(CLog::kDEBUG1); break; case IDC_TASKBAR_LOG_LEVEL_DEBUG2: CLOG->setFilter(CLog::kDEBUG2); break; case IDC_TASKBAR_QUIT: quit(); break; }}
开发者ID:axelson,项目名称:synergy-plus,代码行数:85,
示例16: TaskManager_OnTabWndSelChangestatic 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,
示例17: ProcessHelpRequest//.........这里部分代码省略......... } } // Cas des menus if ( Origin == MenuHelp ) { if ( Type == Normal ) // le cas le plus simple { Entry = HelpDef -> MenuEntries ; goto GotHelpEntry ; } // Menu popup : on va recherche son entrée dans la table en se basant // sur l'identificateur de son premier élément if ( LastSelectedMenuType & MF_SYSMENU ) { Entry = HelpDef -> MenuEntries ; goto GotHelpEntry ; } if ( LastSelectedMenuType & MF_POPUP ) { hMenu = LastSelectedMenuHandle ; depth = 0 ; i = -1 ; while ( i == -1 ) { i = GetMenuItemID ( hMenu, 0 ) ; hMenu = GetSubMenu ( hMenu, 0 ) ; depth ++ ; if ( hMenu == NULL ) break ; } // Aucun sous-élément n'a été trouvé ! if ( i == -1 ) { Entry = HelpDef -> MenuEntries ; goto GotHelpEntry ; } // Un élément a été trouvé : on le cherche dans les entrées nesting = 0 ; for ( sp = NULL, ep = HelpDef -> MenuEntries, found = 0 ; ep != NULL && ep -> Type != EndOfTable && ( ep -> Type != MenuEnd || nesting ) ; ep ++ ) { if ( ! ep -> Id ) sp = ep ; // Dernier élément nul else if ( ep -> Id == i ) { found = 1 ; break ; } if ( ep -> Type == MenuStart ) nesting ++ ;
开发者ID:wuthering-bytes,项目名称:cheops,代码行数:67,
示例18: TaskManagerWndProc//.........这里部分代码省略......... break; case ID_PROCESS_PAGE_SETPRIORITY_LOW: ProcessPage_OnSetPriorityLow(); break; case ID_PROCESS_PAGE_DEBUGCHANNELS: ProcessPage_OnDebugChannels(); break; case ID_HELP_TOPICS: WinHelpW(hDlg, wszTaskmgr, HELP_FINDER, 0); break; case ID_HELP_ABOUT: OnAbout(); break; case ID_FILE_EXIT: EndDialog(hDlg, IDOK); break; } break; case WM_ONTRAYICON: switch(lParam) { case WM_RBUTTONDOWN: { POINT pt; BOOL OnTop; HMENU hMenu, hPopupMenu; GetCursorPos(&pt); OnTop = (GetWindowLongW(hMainWnd, GWL_EXSTYLE) & WS_EX_TOPMOST) != 0; hMenu = LoadMenuW(hInst, MAKEINTRESOURCEW(IDR_TRAY_POPUP)); hPopupMenu = GetSubMenu(hMenu, 0); if(IsWindowVisible(hMainWnd)) { DeleteMenu(hPopupMenu, ID_RESTORE, MF_BYCOMMAND); } else { SetMenuDefaultItem(hPopupMenu, ID_RESTORE, FALSE); } if(OnTop) { CheckMenuItem(hPopupMenu, ID_OPTIONS_ALWAYSONTOP, MF_BYCOMMAND | MF_CHECKED); } SetForegroundWindow(hMainWnd); TrackPopupMenuEx(hPopupMenu, 0, pt.x, pt.y, hMainWnd, NULL); DestroyMenu(hMenu); break; } case WM_LBUTTONDBLCLK: TaskManager_OnRestoreMainWindow(); break; } break; case WM_NOTIFY: pnmh = (LPNMHDR)lParam; if ((pnmh->hwndFrom == hTabWnd) && (pnmh->idFrom == IDC_TAB) && (pnmh->code == TCN_SELCHANGE))
开发者ID:Sunmonds,项目名称:wine,代码行数:67,
示例19: ChildWndProc//.........这里部分代码省略......... break; } } } break; case WM_CONTEXTMENU: { POINT pt; if((HWND)wParam == g_pChildWnd->hListWnd) { int i, cnt; BOOL IsDefault; pt.x = (short) LOWORD(lParam); pt.y = (short) HIWORD(lParam); cnt = ListView_GetSelectedCount(g_pChildWnd->hListWnd); i = ListView_GetNextItem(g_pChildWnd->hListWnd, -1, LVNI_FOCUSED | LVNI_SELECTED); if (pt.x == -1 && pt.y == -1) { RECT rc; if (i != -1) { rc.left = LVIR_BOUNDS; SendMessageW(g_pChildWnd->hListWnd, LVM_GETITEMRECT, i, (LPARAM) &rc); pt.x = rc.left + 8; pt.y = rc.top + 8; } else pt.x = pt.y = 0; ClientToScreen(g_pChildWnd->hListWnd, &pt); } if(i == -1) { TrackPopupMenu(GetSubMenu(hPopupMenus, PM_NEW), TPM_RIGHTBUTTON, pt.x, pt.y, 0, hFrameWnd, NULL); } else { HMENU mnu = GetSubMenu(hPopupMenus, PM_MODIFYVALUE); SetMenuDefaultItem(mnu, ID_EDIT_MODIFY, MF_BYCOMMAND); IsDefault = IsDefaultValue(g_pChildWnd->hListWnd, i); if(cnt == 1) EnableMenuItem(mnu, ID_EDIT_RENAME, MF_BYCOMMAND | (IsDefault ? MF_DISABLED | MF_GRAYED : MF_ENABLED)); else EnableMenuItem(mnu, ID_EDIT_RENAME, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED); EnableMenuItem(mnu, ID_EDIT_MODIFY, MF_BYCOMMAND | (cnt == 1 ? MF_ENABLED : MF_DISABLED | MF_GRAYED)); EnableMenuItem(mnu, ID_EDIT_MODIFY_BIN, MF_BYCOMMAND | (cnt == 1 ? MF_ENABLED : MF_DISABLED | MF_GRAYED)); TrackPopupMenu(mnu, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hFrameWnd, NULL); } } else if ((HWND)wParam == g_pChildWnd->hTreeWnd) { TVHITTESTINFO hti; HMENU hContextMenu; TVITEMW item; MENUITEMINFOW mii; WCHAR resource[256]; WCHAR buffer[256]; LPWSTR s; LPCWSTR keyPath; HKEY hRootKey; int iLastPos; WORD wID; pt.x = (short) LOWORD(lParam); pt.y = (short) HIWORD(lParam);
开发者ID:hoangduit,项目名称:reactos,代码行数:67,
示例20: AfxMergeMenusHMENU AFXAPI AfxMergeMenus(HMENU hMenuShared, HMENU hMenuSource, LONG* lpMenuWidths, int iWidthIndex, BOOL bMergeHelpMenus /* = FALSE */){ ASSERT(hMenuShared != NULL && IsMenu(hMenuShared)); ASSERT(hMenuSource != NULL && IsMenu(hMenuSource)); BOOL bHelpMergedAsSubMenu = FALSE; HMENU hHelpSubMenu = NULL; // copy the popups from the pMenuSource int cMenuItems = GetMenuItemCount(hMenuSource); int cGroupWidth = 0; int nPosition = 0; // insert at appropriate spot depending on iWidthIndex ASSERT(iWidthIndex == 0 || iWidthIndex == 1); if (iWidthIndex == 1) nPosition = (int)lpMenuWidths[0]; for (int i = 0; i < cMenuItems; i++) { // get the HMENU of the popup HMENU hMenuPopup = ::GetSubMenu(hMenuSource, i); // separators move us to next group UINT state = GetMenuState(hMenuSource, i, MF_BYPOSITION); if (hMenuPopup == NULL && (state & MF_SEPARATOR) != 0) { ASSERT(iWidthIndex <= 5); // servers should not touch past 5 lpMenuWidths[iWidthIndex] = cGroupWidth; cGroupWidth = 0; if (iWidthIndex < 5) nPosition += (int)lpMenuWidths[iWidthIndex+1]; iWidthIndex += 2; } else { HMENU hHelpMenu = NULL; // are we processing the help menu group? if (bMergeHelpMenus && iWidthIndex == 5) { // if so, see if the container has Help any menu items if (lpMenuWidths[iWidthIndex] == 1) { // get the help menu from the container hHelpMenu = GetSubMenu(hMenuShared, nPosition); } } // get the menu item text TCHAR szItemText[256]; int nLen = GetMenuString(hMenuSource, i, szItemText, sizeof szItemText, MF_BYPOSITION); // popups are handled differently than normal menu items if (hMenuPopup != NULL) { if (hHelpMenu != NULL) { CString strTearOff = AfxGetAppName(); if (!strTearOff.IsEmpty()) strTearOff += ' '; strTearOff += szItemText; // container has help items -- add ours to its submenu AppendMenu(hHelpMenu, MF_STRING | MF_POPUP, (UINT)hMenuPopup, strTearOff); // clear the count of Help group items and add // the help menu to the window group lpMenuWidths[iWidthIndex] = 0; lpMenuWidths[iWidthIndex-1]++; bHelpMergedAsSubMenu = TRUE; hHelpSubMenu = hMenuPopup; } else if (::GetMenuItemCount(hMenuPopup) != 0) { // strip the HIBYTE because it contains a count of items state = LOBYTE(state) | MF_POPUP; // must be popup // non-empty popup -- add it to the shared menu bar InsertMenu(hMenuShared, nPosition, state | MF_BYPOSITION, (UINT)hMenuPopup, szItemText); ++nPosition; ++cGroupWidth; } } else if (nLen > 0) { // only non-empty items are added ASSERT(szItemText[0] != 0); // here the state does not contain a count in the HIBYTE InsertMenu(hMenuShared, nPosition, state | MF_BYPOSITION, GetMenuItemID(hMenuSource, i), szItemText); ++nPosition;//.........这里部分代码省略.........
开发者ID:Rupan,项目名称:winscp,代码行数:101,
示例21: AudioDlgProc//.........这里部分代码省略......... case WM_SHOWWINDOW: set_window_title(hDlg); break; case WM_NOTIFY: switch(((LPNMHDR)lParam)->code) { case PSN_KILLACTIVE: SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE); break; case PSN_APPLY: set_reg_key(config_key, "Drivers", "Audio", curAudioDriver); apply(); SetWindowLongPtr(hDlg, DWLP_MSGRESULT, PSNRET_NOERROR); break; case PSN_SETACTIVE: break; case NM_CLICK: if (((LPNMHDR)lParam)->idFrom == IDC_AUDIO_TREE) { TVHITTESTINFO ht; DWORD dwPos = GetMessagePos(); HWND tree = ((LPNMHDR)lParam)->hwndFrom; ZeroMemory(&ht, sizeof(ht)); ht.pt.x = (short)LOWORD(dwPos); ht.pt.y = (short)HIWORD(dwPos); MapWindowPoints(HWND_DESKTOP, tree, &ht.pt, 1); SendMessageW( tree, TVM_HITTEST, 0, (LPARAM)&ht ); if (TVHT_ONITEMSTATEICON & ht.flags) { TVITEM tvItem; int index; ZeroMemory(&tvItem, sizeof(tvItem)); tvItem.hItem = ht.hItem; SendMessageW( tree, TVM_GETITEMW, 0, (LPARAM) &tvItem ); index = TreeView_GetItemState(tree, ht.hItem, TVIS_STATEIMAGEMASK); if (index == INDEXTOSTATEIMAGEMASK(1)) { TreeView_SetItemState(tree, ht.hItem, INDEXTOSTATEIMAGEMASK(2), TVIS_STATEIMAGEMASK); addDriver(loadedAudioDrv[tvItem.lParam & 0xff].szDriver); SendMessage(GetParent(hDlg), PSM_CHANGED, (WPARAM) hDlg, 0); /* enable apply button */ } else if (index == INDEXTOSTATEIMAGEMASK(2)) { TreeView_SetItemState(tree, ht.hItem, INDEXTOSTATEIMAGEMASK(1), TVIS_STATEIMAGEMASK); removeDriver(loadedAudioDrv[tvItem.lParam & 0xff].szDriver); SendMessage(GetParent(hDlg), PSM_CHANGED, (WPARAM) hDlg, 0); /* enable apply button */ } } } break; case NM_RCLICK: if (((LPNMHDR)lParam)->idFrom == IDC_AUDIO_TREE) { TVHITTESTINFO ht; DWORD dwPos = GetMessagePos(); HWND tree = ((LPNMHDR)lParam)->hwndFrom; POINT pt; ZeroMemory(&ht, sizeof(ht)); pt.x = (short)LOWORD(dwPos); pt.y = (short)HIWORD(dwPos); ht.pt = pt; MapWindowPoints(HWND_DESKTOP, tree, &ht.pt, 1); SendMessageW( tree, TVM_HITTEST, 0, (LPARAM)&ht ); if (TVHT_ONITEMLABEL & ht.flags) { TVITEM tvItem; ZeroMemory(&tvItem, sizeof(tvItem)); tvItem.hItem = ht.hItem; tvItem.mask = TVIF_PARAM; tvItem.lParam = -1; if (TreeView_GetItem(tree, &tvItem)) { if (tvItem.lParam & DRIVER_MASK) { if (hPopupMenus) { TrackPopupMenu(GetSubMenu(hPopupMenus, 0), TPM_RIGHTBUTTON, pt.x, pt.y, 0, tree, NULL); toConfigure = tvItem.lParam & ~DRIVER_MASK; } } else if (tvItem.lParam & DEVICE_MASK) { /* FIXME TBD */ } } } } } break; case WM_INITDIALOG: initAudioDlg(hDlg); break; } return FALSE;}
开发者ID:bilboed,项目名称:wine,代码行数:101,
示例22: SendMessagevoid CManageBookmarksDialog::ShowViewMenu(){ DWORD dwButtonState = static_cast<DWORD>(SendMessage(m_hToolbar,TB_GETSTATE,TOOLBAR_ID_VIEWS,MAKEWORD(TBSTATE_PRESSED,0))); SendMessage(m_hToolbar,TB_SETSTATE,TOOLBAR_ID_VIEWS,MAKEWORD(dwButtonState|TBSTATE_PRESSED,0)); HMENU hMenu = LoadMenu(GetInstance(),MAKEINTRESOURCE(IDR_MANAGEBOOKMARKS_VIEW_MENU)); UINT uCheck; if(m_pmbdps->m_bSortAscending) { uCheck = IDM_MB_VIEW_SORTASCENDING; } else { uCheck = IDM_MB_VIEW_SORTDESCENDING; } CheckMenuRadioItem(hMenu,IDM_MB_VIEW_SORTASCENDING,IDM_MB_VIEW_SORTDESCENDING,uCheck,MF_BYCOMMAND); switch(m_pmbdps->m_SortMode) { case NBookmarkHelper::SM_NAME: uCheck = IDM_MB_VIEW_SORTBYNAME; break; case NBookmarkHelper::SM_LOCATION: uCheck = IDM_MB_VIEW_SORTBYLOCATION; break; case NBookmarkHelper::SM_VISIT_DATE: uCheck = IDM_MB_VIEW_SORTBYVISITDATE; break; case NBookmarkHelper::SM_VISIT_COUNT: uCheck = IDM_MB_VIEW_SORTBYVISITCOUNT; break; case NBookmarkHelper::SM_ADDED: uCheck = IDM_MB_VIEW_SORTBYADDED; break; case NBookmarkHelper::SM_LAST_MODIFIED: uCheck = IDM_MB_VIEW_SORTBYLASTMODIFIED; break; } CheckMenuRadioItem(hMenu,IDM_MB_VIEW_SORTBYNAME,IDM_MB_VIEW_SORTBYLASTMODIFIED,uCheck,MF_BYCOMMAND); RECT rcButton; SendMessage(m_hToolbar,TB_GETRECT,TOOLBAR_ID_VIEWS,reinterpret_cast<LPARAM>(&rcButton)); POINT pt; pt.x = rcButton.left; pt.y = rcButton.bottom; ClientToScreen(m_hToolbar,&pt); TrackPopupMenu(GetSubMenu(hMenu,0),TPM_LEFTALIGN,pt.x,pt.y,0,m_hDlg,NULL); DestroyMenu(hMenu); SendMessage(m_hToolbar,TB_SETSTATE,TOOLBAR_ID_VIEWS,MAKEWORD(dwButtonState,0));}
开发者ID:defhook,项目名称:explorerplusplus,代码行数:62,
示例23: switch// Process window messagesLRESULT CALLBACK Daemon::WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { // This is a static method, so we don't know which instantiation we're // dealing with. We have stored a pseudo-this in the window user data, // though. Daemon *_this = helper::SafeGetWindowUserData<Daemon>(hwnd); switch (iMsg) { case WM_CREATE: { return 0; } case WM_SOCKEVENT: { assert(HIWORD(lParam) == 0); // A new socket created by accept might send messages to // this procedure. We can ignore them. if(wParam != _this->m_deamon_sock) { return 0; } switch(lParam) { case FD_ACCEPT: { struct sockaddr_in incoming; int size_incoming=sizeof(incoming); memset(&incoming, 0, sizeof(incoming)); SOCKET hNewSock; hNewSock = accept(_this->m_deamon_sock, (struct sockaddr *)&incoming,&size_incoming); WSAAsyncSelect(hNewSock, hwnd, 0, 0); unsigned long nbarg = 0; ioctlsocket(hNewSock, FIONBIO, &nbarg); // Phil Money @ Advantig, LLC 7-9-2005 if (ListenMode){ pApp->NewConnection(true,hNewSock); }else{ closesocket(hNewSock); hNewSock = INVALID_SOCKET; } break; } case FD_READ: { unsigned long numbytes=0; ioctlsocket(_this->m_deamon_sock, FIONREAD, &numbytes); recv(_this->m_deamon_sock, _this->netbuf, numbytes, 0); break; } case FD_CLOSE: vnclog.Print(5, _T("Daemon connection closed/n")); DestroyWindow(hwnd); break; } return 0; } case WM_COMMAND: switch (LOWORD(wParam)) { case ID_NEWCONN: pApp->NewConnection(false); break; case IDC_OPTIONBUTTON: pApp->m_options.DoDialog(); break; // Phil Money @ Advantig, LLC 7-9-2005 case ID_LISTEN_MODE: if (GetListenMode()){ SetListenMode(false); }else{ SetListenMode(true); } _this->CheckTrayIcon(); break; case ID_CLOSEAPP: PostQuitMessage(0); //DestroyWindow(hwnd); break; case ID_CLOSEDAEMON: //if (_this->m_sock!=NULL) shutdown(_this->m_sock, SD_BOTH); //if (_this->m_sock!=NULL) closesocket(_this->m_sock); //_this->m_sock=NULL; break; case IDD_APP_ABOUT: ShowAboutBox(); break; } return 0; case WM_TRAYNOTIFY: { HMENU hSubMenu = GetSubMenu(_this->m_hmenu, 0); if (lParam==WM_LBUTTONDBLCLK) { // double click: execute first menu item ::SendMessage(_this->m_nid.hWnd, WM_COMMAND, //.........这里部分代码省略.........
开发者ID:runsoftdev,项目名称:ultravnc,代码行数:101,
示例24: moduleListRightClickvoid moduleListRightClick(HWND hwnd, WPARAM wParam, LPARAM lParam) // hwnd here is to the main window, NOT the treview{ TVHITTESTINFO hti; hti.pt.x = (short)LOWORD(GetMessagePos()); hti.pt.y = (short)HIWORD(GetMessagePos()); ScreenToClient(((LPNMHDR)lParam)->hwndFrom, &hti.pt); if (TreeView_HitTest(((LPNMHDR)lParam)->hwndFrom, &hti)) { if (hti.flags & TVHT_ONITEM) { TVITEM tvi = {0}; HMENU hMenu, hSubMenu; int menuNumber; char module[256]; tvi.mask = TVIF_HANDLE | TVIF_PARAM | TVIF_TEXT; tvi.hItem = hti.hItem; tvi.pszText = module; tvi.cchTextMax = 255; TreeView_GetItem(((LPNMHDR)lParam)->hwndFrom, &tvi); if (tvi.lParam) { ModuleTreeInfoStruct *mtis = (ModuleTreeInfoStruct *)tvi.lParam; MCONTACT hContact = mtis->hContact; GetCursorPos(&hti.pt); hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXTMENU)); TranslateMenu(hMenu); if (mtis->type == CONTACT && hContact) menuNumber = 2; else if ((mtis->type == MODULE) && !hContact) menuNumber = 1; else if (mtis->type == CONTACT && !hContact) menuNumber = 3; else if (mtis->type == CONTACT_ROOT_ITEM && !hContact) menuNumber = 4; else if ((mtis->type == MODULE) && hContact) menuNumber = 5; else return; hSubMenu = GetSubMenu(hMenu, menuNumber); TranslateMenu(hSubMenu); switch (menuNumber) { case 1: // null module case 5: // contact module { // check if we r already watching the module int i, watching = 0; // check if the setting is being watched and if it is then check the menu item if (WatchListArray.item) for (i = 0; i < WatchListArray.count; i++) if (WatchListArray.item[i].module && (hContact == WatchListArray.item[i].hContact)) { if (!mir_strcmp(module, WatchListArray.item[i].module) && !WatchListArray.item[i].setting) { // yes so uncheck it CheckMenuItem(hSubMenu, MENU_WATCH_ITEM, MF_CHECKED | MF_BYCOMMAND); watching = 1; break; } } switch (TrackPopupMenu(hSubMenu, TPM_RETURNCMD, hti.pt.x, hti.pt.y, 0, hwnd, NULL)) { case MENU_RENAME_MOD: TreeView_EditLabel(GetDlgItem(hwnd, IDC_MODULES), tvi.hItem); break; case MENU_DELETE_MOD: if (deleteModule(module, hContact, 0)) { TreeView_DeleteItem(((LPNMHDR)lParam)->hwndFrom, hti.hItem); mir_free(mtis); } break; case MENU_COPY_MOD: copyModuleMenuItem(module, hContact); break; ////////////////////////////////////////////////////////////////////// divider case MENU_WATCH_ITEM: if (!watching) addSettingToWatchList(hContact, module, 0); else freeWatchListItem(i); if (hwnd2watchedVarsWindow) PopulateWatchedWindow(GetDlgItem(hwnd2watchedVarsWindow, IDC_VARS)); break; case MENU_EXPORTMODULE: exportDB(hContact, module); break; case MENU_EXPORTDB: exportDB(INVALID_CONTACT_ID, module); break; } } break; case 2: // contact switch (TrackPopupMenu(hSubMenu, TPM_RETURNCMD, hti.pt.x, hti.pt.y, 0, hwnd, NULL)) { case MENU_CLONE_CONTACT: if (CloneContact(hContact)) refreshTree(1); break;//.........这里部分代码省略.........
开发者ID:0xmono,项目名称:miranda-ng,代码行数:101,
示例25: Sleep//.........这里部分代码省略......... HANDLE process=NULL; ZeroMemory(&StartUPInfo,sizeof(STARTUPINFO)); ZeroMemory(&ProcessInfo,sizeof(PROCESS_INFORMATION)); StartUPInfo.wShowWindow = SW_SHOW; StartUPInfo.lpDesktop = "Winsta0//Default"; StartUPInfo.cb = sizeof(STARTUPINFO); CreateProcessAsUser(hPToken,NULL,dir,NULL,NULL,FALSE,DETACHED_PROCESS,NULL,NULL,&StartUPInfo,&ProcessInfo); DWORD error=GetLastError(); if (hPToken) CloseHandle(hPToken); if (process) CloseHandle(process); if (Token) CloseHandle(Token); if (hProcess) CloseHandle(hProcess); if (error==1314) { Set_start_service_as_admin(); } fShutdownOrdered=TRUE; Sleep(1000); vnclog.Print(LL_INTINFO, VNCLOG("KillAuthClients() ID_CLOSE /n")); _this->m_server->KillAuthClients(); PostMessage(hwnd, WM_CLOSE, 0, 0); } } break; } return 0; case WM_TRAYNOTIFY: // User has clicked on the tray icon or the menu { // Get the submenu to use as a pop-up menu HMENU submenu = GetSubMenu(_this->m_hmenu, 0); // What event are we responding to, RMB click? if (lParam==WM_RBUTTONUP) { if (submenu == NULL) { vnclog.Print(LL_INTERR, VNCLOG("no submenu available/n")); return 0; } // Make the first menu item the default (bold font) SetMenuDefaultItem(submenu, 0, TRUE); // Get the current cursor position, to display the menu at POINT mouse; GetCursorPos(&mouse); // There's a "bug" // (Microsoft calls it a feature) in Windows 95 that requires calling // SetForegroundWindow. To find out more, search for Q135788 in MSDN. // SetForegroundWindow(_this->m_nid.hWnd); // Display the menu at the desired position TrackPopupMenu(submenu, 0, mouse.x, mouse.y, 0, _this->m_nid.hWnd, NULL); PostMessage(hwnd, WM_NULL, 0, 0); return 0; }
开发者ID:DennisHeerema,项目名称:ultravnc,代码行数:67,
示例26: ProcDlgProc////////////////////////////////////////////////////////////////////////////进程管理窗口过程//////////////////////////////////////////////////////////////////////////LRESULT CALLBACK ProcDlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam){ HWND hList = NULL; LPNMHDR lPnmhdr = NULL; switch (uMsg) { case WM_COMMAND: { switch(LOWORD(wParam)) { case ID_POPUP_40007: { hList = GetDlgItem(hDlg,IDC_LIST1); int index = ListView_GetSelectionMark(hList); char temp[10] = {0}; ListView_GetItemText(hList,index,0,temp,sizeof(temp)); int pid = atoi(temp); ProcDelete(sockfd,pid); } break; case ID_POPUP_40009: { //PID==0为刷新 int pid = 0; ProcDelete(sockfd,pid); } break; } } break; case WM_NOTIFY: { lPnmhdr = (LPNMHDR)lParam; hList = GetDlgItem(hDlg,IDC_LIST1); if (lPnmhdr->hwndFrom==hList) { switch (lPnmhdr->code) { case NM_RCLICK: { HMENU hMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDR_MENU2)); hMenu = GetSubMenu(hMenu,0); POINT stPos; GetCursorPos(&stPos); TrackPopupMenu(hMenu,TPM_LEFTALIGN,stPos.x,stPos.y,NULL,hDlg,NULL); } break; } } } case WM_INITMENUPOPUP: { BOOL flag = TRUE; hList = GetDlgItem(hDlg,IDC_LIST1); int index = ListView_GetSelectionMark(hList); int count = ListView_GetItemCount(hList); if (index >= count) { flag = FALSE; } switch(LOWORD(lParam)) { case 0: { if (flag) { EnableMenuItem((HMENU)wParam,ID_POPUP_40007,MF_ENABLED); } else { EnableMenuItem((HMENU)wParam,ID_POPUP_40007,MF_GRAYED); } } break; } } break; case WM_SOCKET: { switch(LOWORD(lParam)) { case FD_WRITE: { //继续发送 SendCmd(sockfd,NULL,NULL); } break; case FD_READ: { RecvCmd(sockfd); } break; case FD_CLOSE: { //SOCKET出错处理,MainFunc.H里 清理缓冲区//.........这里部分代码省略.........
开发者ID:drupalhunter,项目名称:HackCollect,代码行数:101,
示例27: switch//.........这里部分代码省略......... //if(::IsZoomed(TitleBarThis->Parent)==TRUE) ShowWindow(TitleBarThis->Parent, SW_RESTORE); /*else ShowWindow(TitleBarThis->Parent, SW_MAXIMIZE);*/ } if(LOWORD(wParam) == tbIDC_MINIMIZE) ShowWindow(TitleBarThis->Parent, SW_MINIMIZE); } else //default = false - send custom message on buttons { if(LOWORD(wParam) == tbIDC_CLOSE) ::SendMessage(TitleBarThis->Parent, tbWM_CLOSE, NULL, NULL); if(LOWORD(wParam) == tbIDC_MAXIMIZE) ::SendMessage(TitleBarThis->Parent, tbWM_MAXIMIZE, NULL, NULL); if(LOWORD(wParam) == tbIDC_MINIMIZE) ::SendMessage(TitleBarThis->Parent, tbWM_MINIMIZE, NULL, NULL); } } //Menu part starts here { UINT IDNum=LOWORD(wParam); if(IDNum>=tbWMCOMMANDIDStart&&IDNum<tbWMCOMMANDIDEnd) //The ID is in range for a menuclick { UINT Num=IDNum-tbWMCOMMANDIDStart; //When the close,minimize, maximize is not present just send! :) if(tbLastIsStandard==FALSE) ::SendMessage(TitleBarThis->Parent, WM_USER+tbWMUSERID+Num, NULL,NULL); else //Handle close, minimize and maximize { HMENU Menu=LoadMenu(TitleBarThis->hInstance,MAKEINTRESOURCE (tbMENUID)); HMENU SubMenu=GetSubMenu(Menu,0);; UINT Total=0; //Get the real number of entries (exluding seperators) for(int i=0;i<GetMenuItemCount(SubMenu);i++) { int res=::GetMenuString(SubMenu, i, NULL, 0, MF_BYPOSITION); if(res!=0) Total++; } if(Num==Total-1) //Close button ::SendMessage(TitleBarThis->m_hWnd,WM_COMMAND,MAKEWPARAM(tbIDC_CLOSE,BN_CLICKED),NULL); else if(Num==Total-2) //Minimize button ::SendMessage(TitleBarThis->m_hWnd,WM_COMMAND,MAKEWPARAM(tbIDC_MINIMIZE,BN_CLICKED),NULL); else if(Num==Total-3) //Maximize button ::SendMessage(TitleBarThis->m_hWnd,WM_COMMAND,MAKEWPARAM(tbIDC_MAXIMIZE,BN_CLICKED),NULL); else ::SendMessage(TitleBarThis->Parent, WM_USER+tbWMUSERID+Num, NULL,NULL); DestroyMenu (SubMenu); DestroyMenu (Menu); } } } break; case WM_MOUSEMOVE: if(TitleBarThis->HideAfterSlide==FALSE) { TitleBarThis->SlideDown=TRUE;
开发者ID:JPG-Consulting,项目名称:uVNC,代码行数:67,
示例28: handle_menu//.........这里部分代码省略......... case 410: // load next town/outdoor zone if (editing_town == true) { if (cur_town + 1 == scenario.num_towns) load_town(0); else load_town(cur_town + 1); start_town_edit(); } else { if ((cur_out.x < (scenario.out_width - 1)) && (cur_out.y <= (scenario.out_height - 1))) { x = cur_out.x + 1; y = cur_out.y; } if ((cur_out.x == (scenario.out_width - 1)) && (cur_out.y < (scenario.out_height - 1))) { x = 0; y = cur_out.y + 1; } if ((cur_out.x == (scenario.out_width - 1)) && (cur_out.y == (scenario.out_height - 1))) { x = 0; y = 0; } spot_hit.x = x; spot_hit.y = y; load_outdoors(spot_hit,0); augment_terrain(spot_hit); start_out_edit(); } break; case 411: // MENUITEM "Terrain Animations Play", 411 HMENU menu,big_menu; big_menu = GetMenu(mainPtr); menu = GetSubMenu(big_menu,4); if(play_anim == FALSE){ play_anim = TRUE; CheckMenuItem(menu,411,MF_BYCOMMAND | MF_CHECKED); } else{ play_anim = FALSE; CheckMenuItem(menu,411,MF_BYCOMMAND | MF_UNCHECKED); } break; case 412: // load outdoor zone above if (editing_town) break; if (cur_out.y > 0) { x = cur_out.x; y = cur_out.y - 1; } else { x = cur_out.x; y = scenario.out_height - 1; } spot_hit.x = x; spot_hit.y = y; load_outdoors(spot_hit,0); augment_terrain(spot_hit); start_out_edit(); break; case 413: // load outdoor zone below if (editing_town) break;
开发者ID:PBrookfield,项目名称:cboe-msvc,代码行数:67,
示例29: Filesets_OnEndTask_Menuvoid Filesets_OnEndTask_Menu (HWND hDlg, LPTASKPACKET ptp){ LPIDENT lpiFileset = (LPIDENT)(TASKDATA(ptp)->mt.lpi); HMENU hm; if (lpiFileset != NULL) hm = TaLocale_LoadMenu (MENU_SET); else hm = TaLocale_LoadMenu (MENU_SET_NONE); if (hm != NULL) { if (lpiFileset == NULL) { HMENU hmView = GetSubMenu (hm, 0); DWORD dwStyle = GetWindowLong (TASKDATA(ptp)->mt.hParent, GWL_STYLE); CheckMenuRadioItem (hmView, M_SET_VIEW_REPORT, M_SET_VIEW_TREE, ((dwStyle & FLS_VIEW_MASK) == FLS_VIEW_TREELIST) ? M_SET_VIEW_TREELIST : ((dwStyle & FLS_VIEW_MASK) == FLS_VIEW_TREE) ? M_SET_VIEW_TREE : M_SET_VIEW_REPORT, MF_BYCOMMAND); CheckMenuRadioItem (hmView, M_VIEW_ONEICON, M_VIEW_STATUS, (gr.ivSet == ivTWOICONS) ? M_VIEW_TWOICONS : (gr.ivSet == ivONEICON) ? M_VIEW_ONEICON : M_VIEW_STATUS, MF_BYCOMMAND); } else { if (!ptp->rc) { EnableMenu (hm, M_SET_REPLICATION, FALSE); EnableMenu (hm, M_SET_SETQUOTA, FALSE); EnableMenu (hm, M_SET_RELEASE, FALSE); EnableMenu (hm, M_SET_CLONE, FALSE); EnableMenu (hm, M_SET_MOVETO, FALSE); EnableMenu (hm, M_SET_DUMP, FALSE); EnableMenu (hm, M_SET_RESTORE, FALSE); } else { if (TASKDATA(ptp)->fs.Type == ftCLONE) { EnableMenu (hm, M_SET_REPLICATION, FALSE); EnableMenu (hm, M_SET_RELEASE, FALSE); EnableMenu (hm, M_SET_CLONE, FALSE); EnableMenu (hm, M_SET_MOVETO, FALSE); } if (TASKDATA(ptp)->fs.Type != ftREADWRITE) { EnableMenu (hm, M_SET_CLONE, FALSE); EnableMenu (hm, M_SET_RELEASE, FALSE); EnableMenu (hm, M_SET_SETQUOTA, FALSE); EnableMenu (hm, M_SET_RESTORE, FALSE); } } } DisplayContextMenu (hm, TASKDATA(ptp)->mt.ptScreen, TASKDATA(ptp)->mt.hParent); }}
开发者ID:maxendpoint,项目名称:openafs_cvs,代码行数:64,
注:本文中的GetSubMenu函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GetSummoner函数代码示例 C++ GetStyle函数代码示例 |