这篇教程C++ DestroyMenu函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中DestroyMenu函数的典型用法代码示例。如果您正苦于以下问题:C++ DestroyMenu函数的具体用法?C++ DestroyMenu怎么用?C++ DestroyMenu使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了DestroyMenu函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: switchvoid StatusWnd::onCommand(UINT id, HIMC hIMC){ switch( id ) { case ID_CHI_ENG: toggleChiEngMode(hIMC); break; case ID_FULL_HALF: toggleShapeMode(hIMC); break; case ID_MENU: { HMENU menu = LoadMenu( g_dllInst, LPCTSTR(IDR_POPUP)); HMENU popup = GetSubMenu( menu, 0 ); RECT rc; GetWindowRect(hwnd, &rc); rc.left += 9; UINT flag; long y; if((rc.top * 2) > GetSystemMetrics(SM_CYSCREEN) ) { y = rc.top; flag = TPM_BOTTOMALIGN|TPM_LEFTALIGN; } else { y = rc.bottom; flag = TPM_TOPALIGN|TPM_LEFTALIGN; } TrackPopupMenu( popup, flag, rc.left, y, 0, hwnd, NULL); DestroyMenu(menu); break; } case ID_CONFIG: case ID_ABOUT: try { HWND top = hwnd; HWND desktop = GetDesktopWindow(), parent = NULL; while( (parent=GetParent(top)) != desktop && parent ) top = parent; EnableWindow( hwnd, FALSE ); if( id == ID_CONFIG ) ConfigureChewingIME(top); else DialogBox(g_dllInst, LPCTSTR(IDD_ABOUT), top, (DLGPROC)AboutDlgProc); EnableWindow( hwnd, TRUE ); } catch (...) { OutputDebugString("Using die wnd"); } break; case ID_WEBSITE: ShellExecute( NULL, "open", _T("http://chewing.im/"), NULL, NULL, SW_SHOWNORMAL ); break; case ID_GROUP: ShellExecute( NULL, "open", _T("http://groups.google.com/group/chewing"), NULL, NULL, SW_SHOWNORMAL ); break; case ID_BUGREPORT: ShellExecute( NULL, "open", _T("http://code.google.com/p/chewing/issues"), NULL, NULL, SW_SHOWNORMAL ); break; case ID_DICT_BUGREPORT: ShellExecute( NULL, "open", _T("http://of.openfoundry.org/projects/436/rt"), NULL, NULL, SW_SHOWNORMAL ); break; case ID_HASHED: case ID_CHEWING_HELP: case ID_CHECK_NEW_VER: { TCHAR path[MAX_PATH]; GetSystemDirectory( path, MAX_PATH ); _tcscat( path, _T("//IME//Chewing//") ); int showcmd; if( id == ID_CHEWING_HELP ) { _tcscat( path, _T("Chewing.chm")); showcmd = SW_SHOWMAXIMIZED; } else if( id == ID_CHECK_NEW_VER ) { _tcscat( path, _T("Update.exe")); showcmd = SW_SHOWNORMAL; } else { _tcscat( path, _T("HashEd.exe")); showcmd = SW_SHOWNORMAL; } ShellExecute( NULL, "open", path, NULL, NULL, showcmd ); break; } case ID_DICT: case ID_SIMPDICT: case ID_LITTLEDICT: case ID_PROVERBDICT: { LPCTSTR url[]={ _T("http://dict.revised.moe.edu.tw/"), _T("http://dict.concised.moe.edu.tw/main/cover/main.htm"), _T("http://dict.mini.moe.edu.tw/"), _T("http://dict.idioms.moe.edu.tw/sort_pho.htm")}; ShellExecute( NULL, "open", url[ id - ID_DICT ], NULL, NULL, SW_SHOWNORMAL ); break; }//.........这里部分代码省略.........
开发者ID:HUANG-YI-CHEN,项目名称:windows-chewing,代码行数:101,
示例2: WndProcLRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ switch (message) { case TRAY_CALLBACK: { switch(lParam) { case WM_LBUTTONDBLCLK: if (IsWindowVisible(hWnd)) ShowWindow(hWnd, SW_HIDE); else ShowWindow(hWnd, SW_RESTORE); break; case WM_MOUSEMOVE: { CString sInfoTip; NOTIFYICONDATA SystemTray; sInfoTip.Format(_T("Cached Directories : %ld/nWatched paths : %ld"), CGitStatusCache::Instance().GetCacheSize(), CGitStatusCache::Instance().GetNumberOfWatchedPaths()); SystemTray.cbSize = sizeof(NOTIFYICONDATA); SystemTray.hWnd = hTrayWnd; SystemTray.uID = TRAY_ID; SystemTray.uFlags = NIF_TIP; _tcscpy_s(SystemTray.szTip, sInfoTip); Shell_NotifyIcon(NIM_MODIFY, &SystemTray); } break; case WM_RBUTTONUP: case WM_CONTEXTMENU: { POINT pt; DWORD ptW = GetMessagePos(); pt.x = GET_X_LPARAM(ptW); pt.y = GET_Y_LPARAM(ptW); HMENU hMenu = CreatePopupMenu(); if(hMenu) { InsertMenu(hMenu, (UINT)-1, MF_BYPOSITION, TRAYPOP_EXIT, _T("Exit")); SetForegroundWindow(hWnd); TrackPopupMenu(hMenu, TPM_BOTTOMALIGN, pt.x, pt.y, 0, hWnd, NULL); DestroyMenu(hMenu); } } break; } } break; case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); RECT rect; GetClientRect(hWnd, &rect); // clear the background HBRUSH background = CreateSolidBrush(::GetSysColor(COLOR_WINDOW)); HGDIOBJ oldbrush = SelectObject(hdc, background); FillRect(hdc, &rect, background); int line = 0; SIZE fontsize = {0}; AutoLocker print(critSec); GetTextExtentPoint32( hdc, szCurrentCrawledPath[0], (int)_tcslen(szCurrentCrawledPath[0]), &fontsize ); for (int i=nCurrentCrawledpathIndex; i<MAX_CRAWLEDPATHS; ++i) { TextOut(hdc, 0, line*fontsize.cy, szCurrentCrawledPath[i], (int)_tcslen(szCurrentCrawledPath[i])); line++; } for (int i=0; i<nCurrentCrawledpathIndex; ++i) { TextOut(hdc, 0, line*fontsize.cy, szCurrentCrawledPath[i], (int)_tcslen(szCurrentCrawledPath[i])); line++; } SelectObject(hdc,oldbrush); EndPaint(hWnd, &ps); DeleteObject(background); return 0L; } break; case WM_COMMAND: { WORD wmId = LOWORD(wParam); switch (wmId) { case TRAYPOP_EXIT: DestroyWindow(hWnd); break; } return 1; } case WM_QUERYENDSESSION: { ATLTRACE("WM_QUERYENDSESSION/n"); if (CGitStatusCache::Instance().WaitToWrite(200)) {//.........这里部分代码省略.........
开发者ID:andmedsantana,项目名称:TortoiseGit,代码行数:101,
示例3: MainWndProc//.........这里部分代码省略......... INT xPos = GET_X_LPARAM(lParam); INT yPos = GET_Y_LPARAM(lParam); GetCursorPos(&pt); /* display popup when cursor is in the list view */ GetWindowRect(Info->hListView, &lvRect); if (PtInRect(&lvRect, pt)) { TrackPopupMenuEx(GetSubMenu(Info->hShortcutMenu, 0), TPM_RIGHTBUTTON, xPos, yPos, Info->hMainWnd, NULL); } } break; case WM_COMMAND: { MainWndCommand(Info, LOWORD(wParam), (HWND)lParam); goto HandleDefaultMessage; } case WM_MENUSELECT: { if (Info->hStatus != NULL) { if (!MainWndMenuHint(Info, LOWORD(wParam), MainMenuHintTable, sizeof(MainMenuHintTable) / sizeof(MainMenuHintTable[0]), IDS_HINT_BLANK)) { MainWndMenuHint(Info, LOWORD(wParam), SystemMenuHintTable, sizeof(SystemMenuHintTable) / sizeof(SystemMenuHintTable[0]), IDS_HINT_BLANK); } } } break; case WM_ENTERMENULOOP: { Info->bInMenuLoop = TRUE; UpdateMainStatusBar(Info); break; } case WM_EXITMENULOOP: { Info->bInMenuLoop = FALSE; UpdateMainStatusBar(Info); break; } case WM_CLOSE: { HeapFree(ProcessHeap, 0, Info->pAllServices); DestroyMenu(Info->hShortcutMenu); DestroyWindow(hwnd); } break; case WM_DESTROY: { HeapFree(ProcessHeap, 0, Info); SetWindowLongPtr(hwnd, GWLP_USERDATA, 0); PostQuitMessage(0); } break; default: {HandleDefaultMessage: Ret = DefWindowProc(hwnd, msg, wParam, lParam); } break; } return Ret;}
开发者ID:GYGit,项目名称:reactos,代码行数:101,
示例4: TaskManagerWndProc//.........这里部分代码省略......... case WM_RBUTTONDOWN: { POINT pt; BOOL OnTop; HMENU hMenu, hPopupMenu; GetCursorPos(&pt); OnTop = ((GetWindowLongPtrW(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); } else { CheckMenuItem(hPopupMenu, ID_OPTIONS_ALWAYSONTOP, MF_BYCOMMAND | MF_UNCHECKED); } 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)) { TaskManager_OnTabWndSelChange(); } break;#if 0 case WM_NCPAINT: hdc = GetDC(hDlg); GetClientRect(hDlg, &rc); Draw3dRect(hdc, rc.left, rc.top, rc.right, rc.top + 2, GetSysColor(COLOR_3DSHADOW), GetSysColor(COLOR_3DHILIGHT)); ReleaseDC(hDlg, hdc); break; case WM_PAINT: hdc = BeginPaint(hDlg, &ps); GetClientRect(hDlg, &rc); Draw3dRect(hdc, rc.left, rc.top, rc.right, rc.top + 2, GetSysColor(COLOR_3DSHADOW), GetSysColor(COLOR_3DHILIGHT)); EndPaint(hDlg, &ps); break;#endif
开发者ID:RareHare,项目名称:reactos,代码行数:67,
示例5: MENU_ITEM//.........这里部分代码省略......... if (rainmeter.m_Debug) { CheckMenuItem(menu, IDM_DEBUGLOG, MF_BYCOMMAND | MF_CHECKED); } HMENU allSkinsMenu = GetSubMenu(menu, 4); if (allSkinsMenu) { if (!rainmeter.m_SkinRegistry.IsEmpty()) { DeleteMenu(allSkinsMenu, 0, MF_BYPOSITION); // "No skins available" menuitem CreateAllSkinsMenu(allSkinsMenu); } if (rainmeter.m_DisableDragging) { CheckMenuItem(allSkinsMenu, IDM_DISABLEDRAG, MF_BYCOMMAND | MF_CHECKED); } } HMENU layoutMenu = GetSubMenu(menu, 5); if (layoutMenu) { if (!rainmeter.m_Layouts.empty()) { DeleteMenu(layoutMenu, 0, MF_BYPOSITION); // "No layouts available" menuitem CreateLayoutMenu(layoutMenu); } } if (meterWindow) { HMENU rainmeterMenu = menu; menu = CreateSkinMenu(meterWindow, 0, allSkinsMenu); InsertMenu(menu, IDM_CLOSESKIN, MF_BYCOMMAND | MF_POPUP, (UINT_PTR)rainmeterMenu, L"Rainmeter"); InsertMenu(menu, IDM_CLOSESKIN, MF_BYCOMMAND | MF_SEPARATOR, 0, nullptr); } else { InsertMenu(menu, 12, MF_BYPOSITION | MF_SEPARATOR, 0, nullptr); // Create a menu for all active skins int index = 0; std::map<std::wstring, MeterWindow*>::const_iterator iter = rainmeter.m_MeterWindows.begin(); for (; iter != rainmeter.m_MeterWindows.end(); ++iter) { MeterWindow* mw = ((*iter).second); HMENU skinMenu = CreateSkinMenu(mw, index, allSkinsMenu); InsertMenu(menu, 12, MF_BYPOSITION | MF_POPUP, (UINT_PTR)skinMenu, mw->GetFolderPath().c_str()); ++index; } // Add update notification item if (rainmeter.m_NewVersion) { InsertMenu(menu, 0, MF_BYPOSITION, IDM_NEW_VERSION, GetString(ID_STR_UPDATEAVAILABLE)); HiliteMenuItem(rainmeter.GetTrayWindow()->GetWindow(), menu, 0, MF_BYPOSITION | MF_HILITE); InsertMenu(menu, 1, MF_BYPOSITION | MF_SEPARATOR, 0, nullptr); } } HWND hWnd = WindowFromPoint(pos); if (hWnd != nullptr) { MeterWindow* mw = rainmeter.GetMeterWindow(hWnd); if (mw) { // Cancel the mouse event beforehand mw->SetMouseLeaveEvent(true); } } // Set the window to foreground hWnd = meterWindow ? meterWindow->GetWindow() : rainmeter.m_TrayWindow->GetWindow(); HWND hWndForeground = GetForegroundWindow(); if (hWndForeground != hWnd) { const DWORD foregroundThreadID = GetWindowThreadProcessId(hWndForeground, nullptr); const DWORD currentThreadID = GetCurrentThreadId(); AttachThreadInput(currentThreadID, foregroundThreadID, TRUE); SetForegroundWindow(hWnd); AttachThreadInput(currentThreadID, foregroundThreadID, FALSE); } // Show context menu TrackPopupMenu( menu, TPM_RIGHTBUTTON | TPM_LEFTALIGN | (*GetString(ID_STR_ISRTL) == L'1' ? TPM_LAYOUTRTL : 0), pos.x, pos.y, 0, hWnd, nullptr); DestroyMenu(menu); m_MenuActive = false;}
开发者ID:Crazylemon64,项目名称:rainmeter,代码行数:101,
示例6: ContactListSubclassProc//.........这里部分代码省略......... else { TreeView_SetItemState(hWnd, hItem, 0, TVIS_SELECTED); dat->SelectedItems.RemoveElem(nIndex); } dat->SelectGroups(hItem, nIndex == -1); NMCLIST nm; nm.hdr.code = MCLN_SELCHANGED; nm.hdr.hwndFrom = hWnd; nm.hdr.idFrom = GetDlgCtrlID(hWnd); nm.OldSelection = &OldSelection; nm.NewSelection = &dat->SelectedItems; SendMessage(GetParent(hWnd), WM_NOTIFY, 0, (LPARAM)&nm); return 0; } // if it was a click on the selected item and there's need to do something in this case, then send SELCHANGED notification by ourselves, as the tree control doesn't do anything if (hItem == TreeView_GetSelection(hWnd) && (dat->SelectedItems.GetSize() != 1 || (dat->SelectedItems.GetSize() == 1 && dat->SelectedItems[0] != hItem))) { TreeView_SetItemState(hWnd, hItem, TVIS_SELECTED, TVIS_SELECTED); NMTREEVIEW nm = { 0 }; nm.hdr.code = TVN_SELCHANGED; nm.hdr.hwndFrom = hWnd; nm.hdr.idFrom = GetDlgCtrlID(hWnd); nm.itemOld.hItem = TreeView_GetSelection(hWnd); nm.itemOld.mask = TVIF_HANDLE | TVIF_STATE | TVIF_PARAM; TreeView_GetItem(hWnd, &nm.itemOld); nm.itemNew = nm.itemOld; SendMessage(GetParent(hWnd), WM_NOTIFY, 0, (LPARAM)&nm); } } } break; case WM_SETFOCUS: case WM_KILLFOCUS: for (int i = 0; i < dat->SelectedItems.GetSize(); i++) { RECT rc; if (TreeView_GetItemRect(hWnd, dat->SelectedItems[i], &rc, false)) InvalidateRect(hWnd, &rc, false); } break; case WM_SIZE: case WM_HSCROLL: InvalidateRect(hWnd, NULL, false); break; case WM_MEASUREITEM: if (!wParam) // if the message was sent by a menu return Menu_MeasureItem((LPMEASUREITEMSTRUCT)lParam); break; case WM_DRAWITEM: if (!wParam) // if the message was sent by a menu return Menu_DrawItem((LPDRAWITEMSTRUCT)lParam); break; case WM_CONTEXTMENU: { POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; HTREEITEM hItem = NULL; if (pt.x == -1 && pt.y == -1) { if (dat->SelectedItems.GetSize() == 1) { hItem = dat->SelectedItems[0]; TreeView_EnsureVisible(hWnd, hItem); RECT rc; TreeView_GetItemRect(hWnd, hItem, &rc, true); pt.x = rc.left; pt.y = rc.bottom; } } else { DWORD hitFlags; ScreenToClient(hWnd, &pt); hItem = dat->HitTest(&pt, &hitFlags); if (!(hitFlags & MCLCHT_ONITEM)) hItem = NULL; } if (hItem) { MCONTACT hContact = dat->GetItemData(hItem).hContact; if (IsHContactContact(hContact)) { HMENU hMenu = Menu_BuildContactMenu(hContact); if (hMenu) { ClientToScreen(hWnd, &pt); CallService(MS_CLIST_MENUPROCESSCOMMAND, MAKEWPARAM(TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, hWnd, NULL), MPCF_CONTACTMENU), hContact); DestroyMenu(hMenu); return 0; } } } } break; case WM_DESTROY: if (dat->ExtraImageList) ImageList_Destroy(dat->ExtraImageList); dat->SelectedItems.RemoveAll(); dat->Items.RemoveAll(); break; } return CallWindowProc(dat->OrigTreeViewProc, hWnd, Msg, wParam, lParam);}
开发者ID:Seldom,项目名称:miranda-ng,代码行数:101,
示例7: PopupMenu//.........这里部分代码省略......... ppsz_varnames[i] = "fullscreen"; pi_objects[i++] = p_object; ppsz_varnames[i] = "zoom"; pi_objects[i++] = p_object; ppsz_varnames[i] = "deinterlace-mode"; pi_objects[i++] = p_object; ppsz_varnames[i] = "aspect-ratio"; pi_objects[i++] = p_object; ppsz_varnames[i] = "crop"; pi_objects[i++] = p_object; ppsz_varnames[i] = "video-on-top"; pi_objects[i++] = p_object; ppsz_varnames[i] = "directx-wallpaper"; pi_objects[i++] = p_object; ppsz_varnames[i] = "video-snapshot"; pi_objects[i++] = p_object; p_dec_obj = (vlc_object_t *)vlc_object_find( p_object, VLC_OBJECT_DECODER, FIND_PARENT ); if( p_dec_obj != NULL ) { ppsz_varnames[i] = "ffmpeg-pp-q"; pi_objects[i++] = p_dec_obj; vlc_object_release( p_dec_obj ); } vlc_object_release( p_object ); } /* Audio menu */ if( i != i_last_separator ) ppsz_varnames[i++] = NULL; /* Separator */ i_last_separator = i; p_object = (vlc_object_t *)vlc_object_find( p_intf, VLC_OBJECT_AOUT, FIND_ANYWHERE ); if( p_object != NULL ) { ppsz_varnames[i] = "audio-device"; pi_objects[i++] = p_object; ppsz_varnames[i] = "audio-channels"; pi_objects[i++] = p_object; ppsz_varnames[i] = "visual"; pi_objects[i++] = p_object; ppsz_varnames[i] = "equalizer"; pi_objects[i++] = p_object; vlc_object_release( p_object ); } interfacemenu: /* Interface menu */ if( i != i_last_separator ) ppsz_varnames[i++] = NULL; /* Separator */ i_last_separator = i; /* Build menu */ vector<MenuItemExt*> popup_menu; HMENU hmenu = CreatePopupMenu(); RefreshMenu( p_intf, &popup_menu, hmenu, i, ppsz_varnames, pi_objects, PopupMenu_Events ); MenuItemExt::ClearList( &popup_menu ); /* Add static entries */ if( p_input != NULL ) { vlc_value_t val; AppendMenu( hmenu, MF_SEPARATOR, 0, _T("") ); AppendMenu( hmenu, MF_STRING, StopStream_Event, _T("Stop") ); AppendMenu( hmenu, MF_STRING, PrevStream_Event, _T("Previous") ); AppendMenu( hmenu, MF_STRING, NextStream_Event, _T("Next") ); var_Get( p_input, "state", &val ); if( val.i_int == PAUSE_S ) AppendMenu( hmenu, MF_STRING, PlayStream_Event, _T("Play") ); else AppendMenu( hmenu, MF_STRING, PlayStream_Event, _T("Pause") ); vlc_object_release( p_input ); } else { playlist_t * p_playlist = pl_Hold( p_intf ); if( p_playlist && !playlist_IsEmpty( p_playlist ) ) { AppendMenu( hmenu, MF_SEPARATOR, 0, _T("") ); AppendMenu( hmenu, MF_STRING, PlayStream_Event, _T("Play") ); } if( p_playlist ) pl_Release( p_intf ); } AppendMenu( hmenu, MF_POPUP|MF_STRING, (UINT)MiscMenu( p_intf ), _T("Miscellaneous") ); AppendMenu( hmenu, MF_POPUP|MF_STRING, (UINT)OpenStreamMenu( p_intf ), _T("Open") ); TrackPopupMenu( hmenu, 0, point.x, point.y, 0, p_parent, 0 ); PostMessage( p_parent, WM_NULL, 0, 0 ); DestroyMenu( hmenu );}
开发者ID:shanewfx,项目名称:vlc-arib,代码行数:101,
示例8: CtrlContactWndProc//.........这里部分代码省略......... SendMessage(cbex->hBtnEdit, BM_SETIMAGE, IMAGE_ICON, (LPARAM)cbex->pItems[cbex->iSelectedItem].hIcon); } return 0; } case WM_COMMAND: switch (LOWORD(wParam)) { /** * name: BTN_MENU * desc: the button to dropdown the list to show all items is pressed **/ case BTN_MENU: if (HIWORD(wParam) == BN_CLICKED) { POINT pt = { 0, 0 }; RECT rc; int i, nItems; HMENU hMenu; if (!(hMenu = CreatePopupMenu())) return 0; SetFocus((HWND)lParam); MENUITEMINFO mii = { 0 }; mii.cbSize = sizeof(mii); mii.fMask = MIIM_ID|MIIM_STRING|MIIM_FTYPE|MIIM_STATE; mii.fType = MFT_STRING; // insert the items for (i = nItems = 0; i < cbex->numItems; i++) { if ((cbex->pItems[i].wFlags & CBEXIF_DELETED) || *cbex->pItems[i].szCat == 0) continue; mii.fState = (cbex->pItems[i].pszVal && *cbex->pItems[i].pszVal) ? MFS_CHECKED : MFS_UNCHECKED; mii.wID = CBEXM_MENIITEMFIRST + i; mii.dwTypeData = cbex->pItems[i].szCat; if (!InsertMenuItem(hMenu, i, TRUE, &mii)) { DestroyMenu(hMenu); return 0; } nItems++; } // add separator between default and custom items if (nItems > 3) { mii.fMask = MIIM_FTYPE; mii.fType = MFT_SEPARATOR; mii.wID = 0; mii.dwItemData = 0; InsertMenuItem(hMenu, 3, TRUE, &mii); } ClientToScreen((HWND)lParam, &pt); GetClientRect((HWND)lParam, &rc); i = TrackPopupMenuEx(hMenu, TPM_RIGHTALIGN|TPM_RETURNCMD, pt.x + rc.right, pt.y + rc.bottom, hwnd, NULL); SendMessage(cbex->hBtnMenu, BM_SETCHECK, NULL, NULL); if (i >= CBEXM_MENIITEMFIRST && i < CBEXM_MENIITEMFIRST + cbex->numItems) { CtrlContactWndProc(hwnd, CBEXM_SETCURSEL, (WPARAM)i - CBEXM_MENIITEMFIRST, NULL); } DestroyMenu(hMenu); return 0; } break; /** * name: BTN_ADD * desc: the button to add a new entry is pressed **/ case BTN_ADD: if (HIWORD(wParam) == BN_CLICKED) { DLGPROC dlgProc; WORD dlgID;
开发者ID:Seldom,项目名称:miranda-ng,代码行数:67,
示例9: WindowProc//.........这里部分代码省略......... { int wTimerID = wParam; if( AnimFile.isAnimation == 1 && wTimerID == 2 ) { UpdateMNG(); SendMessage( hPicWin, WM_PAINT, 0, 0 ); } } break; case WM_COMMAND: switch( LOWORD(wParam) ) { case FILE_OPEN: LoadOFN(hwnd); break; case FILE_SAVE: SaveSFN(hwnd); break; case FILE_EXIT: DestroyWindow( hPicWin ); break; case HELP_ABOUT: Warning( "MNGView Sample Application for VC6./n" / "This Code is Public Domain./n" / "Created by Nikolaus Brennig." ); break; } break; case WM_ERASEBKGND: return 0L; case WM_PAINT: // GetDC: GetClientRect( hPicWin, &rcRect ); hdc = GetDC( hPicWin ); if( MemDC == 0 ) { BitBlt( hdc, 0, 0, rcRect.right, rcRect.bottom, MemDC, 0, 0, BLACKNESS ); ReleaseDC( hPicWin, hdc ); break; } // Erase: // Upper area... BitBlt( hdc, 0, 0, rcRect.right, (0+dy), MemDC, 0, 0, BLACKNESS ); // Lower area... BitBlt( hdc, 0, (0+dy)+H, rcRect.right, rcRect.bottom - ((0+dy)+H), MemDC, 0, 0, BLACKNESS ); // Left area... BitBlt( hdc, 0, 0, (0+dx), rcRect.bottom, MemDC, 0, 0, BLACKNESS ); // Right area... BitBlt( hdc, (0+dx)+W, 0, rcRect.right, rcRect.bottom, MemDC, 0, 0, BLACKNESS ); // Show Imageframe: BitBlt( hdc, dx, dy, W, H, MemDC, 0, 0, SRCCOPY ); // Release DC... ReleaseDC( hPicWin, hdc ); break; case WM_HSCROLL: { int nScrollCode = (int) LOWORD(wParam); // scroll bar value if( nScrollCode == SB_LINELEFT ) dx += 10; if( nScrollCode == SB_LINERIGHT ) dx -= 10; SendMessage( hwnd, WM_PAINT, 0, 0 ); } break; case WM_VSCROLL: { int nScrollCode = (int) LOWORD(wParam); // scroll bar value if( nScrollCode == SB_LINEUP ) dy += 10; if( nScrollCode == SB_LINEDOWN ) dy -= 10; SendMessage( hwnd, WM_PAINT, 0, 0 ); } break; case WM_GETMINMAXINFO: ((MINMAXINFO*)lParam)->ptMinTrackSize.x = 550; ((MINMAXINFO*)lParam)->ptMinTrackSize.y = 450; return 0L; case WM_DESTROY: if( AnimFile.isAnimation == 1 ) CleanUpMNG(); if( hMenu ) DestroyMenu( hMenu ); PostQuitMessage(0); return 0L; } return DefWindowProc( hwnd, message, wParam, lParam );}
开发者ID:d3x0r,项目名称:SACK,代码行数:101,
示例10: CreatePopupMenuHRESULT STDMETHODCALLTYPE CPopupMenu::QueryContextMenu(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags){ if(!IsWorkCopy(&m_Files, m_NumFiles, m_WcPath)){ if(m_NumFiles >= 2){ } else{ if (FILE_ATTRIBUTE_DIRECTORY == GetFileAttributes(m_Files[0].c_str())){ int i = 0; HMENU SubMenu = CreatePopupMenu(); m_hInstance = GetModuleHandle("TeamExplorerShellMenu.dll"); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 1, _T("Set Environment")); m_hSetEnv = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_SETENV)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hSetEnv, m_hSetEnv); InsertMenu(hmenu, indexMenu, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); InsertMenu(hmenu, indexMenu+1, MF_POPUP | MF_BYPOSITION, (UINT)SubMenu, _T("Team Explorer")); m_hPopupMenu = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_POPUPMENU)); SetMenuItemBitmaps(hmenu, indexMenu+1, MF_BYPOSITION, m_hPopupMenu, m_hPopupMenu); InsertMenu(hmenu, indexMenu+2, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); DestroyMenu(SubMenu); } } } else{ if(!IsTeamExplorer(m_WcPath)){ return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(13 + 1)); } int i = 0; HMENU SubMenu = CreatePopupMenu(); m_hInstance = GetModuleHandle("TeamExplorerShellMenu.dll"); if(IsProductOrTags(m_WcPath)){ InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 2, _T("Update")); m_hUpdate = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_UPDATE)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hUpdate, m_hUpdate); } else{ if(CouldWrite(&m_Files, &m_WriteFiles, m_NumFiles)){ InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 3, _T("Check out")); m_hCheckout = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_CHECKOUT)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hCheckout, m_hCheckout); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 4, _T("Commit")); m_hCommit = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_COMMIT)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hCommit, m_hCommit); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 5, _T("Check in")); m_hCheckin = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_CHECKIN)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hCheckin, m_hCheckin); InsertMenu(SubMenu, i++, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 2, _T("Update")); m_hUpdate = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_UPDATE)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hUpdate, m_hUpdate); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 6, _T("Cancel")); m_hCancel = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_CANCEL)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hCancel, m_hCancel); InsertMenu(SubMenu, i++, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 8, _T("Revert")); m_hRevert = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_REVERT)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hRevert, m_hRevert); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 9, _T("Merge")); m_hMerge = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_MERGE)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hMerge, m_hMerge); } else{ InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 3, _T("Check out")); m_hCheckout = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_CHECKOUT)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hCheckout, m_hCheckout); InsertMenu(SubMenu, i++, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 7, _T("Add")); m_hAdd = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_ADD)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hAdd, m_hAdd); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 2, _T("Update")); m_hUpdate = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_UPDATE)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hUpdate, m_hUpdate); } } InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 10, _T("Show log")); m_hShowLog = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_SHOWLOG)); SetMenuItemBitmaps(SubMenu, i-1, MF_BYPOSITION, m_hShowLog, m_hShowLog); InsertMenu(SubMenu, i++, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst + 11, _T("Diff")); m_hDiff = ::LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_DIFF));//.........这里部分代码省略.........
开发者ID:songcser,项目名称:ALM,代码行数:101,
示例11: WndProcstatic LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ enum { WM_APP_TRAYICON = WM_APP_RELOAD + 1, }; static NOTIFYICONDATA nid; static HMENU hMenu; switch (uMsg) { case WM_APP_TRAYICON: switch (lParam) { case WM_RBUTTONDOWN: SetCapture(hWnd); break; case WM_RBUTTONUP: ReleaseCapture(); { RECT rc; POINT pt; GetCursorPos(&pt); GetWindowRect(GetDesktopWindow(), &rc); SetForegroundWindow(hWnd); TrackPopupMenu(GetSubMenu(hMenu, 0), (pt.x < (rc.left + rc.right) / 2 ? TPM_LEFTALIGN : TPM_RIGHTALIGN) | (pt.y < (rc.top + rc.bottom) / 2 ? TPM_TOPALIGN : TPM_BOTTOMALIGN) | TPM_RIGHTBUTTON, pt.x, pt.y, 0, hWnd, NULL); PostMessage(hWnd, WM_NULL, 0, 0); } break; case NIN_BALLOONHIDE: case NIN_BALLOONTIMEOUT: case NIN_BALLOONUSERCLICK: /* error message closed */ DestroyWindow(hWnd); break; } return 0; case WM_APP_RELOAD: { Config_Load(); } return 0; case WM_COMMAND: switch (LOWORD(wParam)) { case ID_CONF: { TCHAR cmd[MAX_PATH]; GetModuleFileName(NULL, cmd, ARRAYSIZE(cmd)); lstrcpy(cmd + lstrlen(cmd) - 4, TEXT("cf")); Exec(cmd); } break; case ID_QUIT: DestroyWindow(hWnd); break; } break; case WM_CREATE: { HINSTANCE hInstance = ((LPCREATESTRUCT)lParam)->hInstance; Config_Load(); /* menu */ hMenu = LoadMenu(hInstance, MAKEINTRESOURCE(IDM_MAIN)); /* tray icon */ ZeroMemory(&nid, sizeof nid); nid.cbSize = sizeof nid; nid.hWnd = hWnd; nid.uID = 100; nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; nid.uCallbackMessage = WM_APP_TRAYICON; nid.hIcon = Global.hIconLarge; lstrcpy(nid.szTip, App.Title); Shell_NotifyIcon(NIM_ADD, &nid); /* error message balloon tip */ nid.uFlags = NIF_INFO; nid.dwInfoFlags = NIIF_WARNING; LoadString(hInstance, IDS_DEVICE_NOT_FOUND, nid.szInfo, ARRAYSIZE(nid.szInfo)); lstrcpy(nid.szInfoTitle, App.Title); /* low level keyboard hook */ Global.hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0); if (!SpecialKey_Prepare()) Shell_NotifyIcon(NIM_MODIFY, &nid); } break; case WM_DESTROY: { SpecialKey_Cleanup(); UnhookWindowsHookEx(Global.hHook); Shell_NotifyIcon(NIM_DELETE, &nid); DestroyMenu(hMenu); } PostQuitMessage(0); return 0; }//.........这里部分代码省略.........
开发者ID:andantissimo,项目名称:Apple-Keyboard-Bridge,代码行数:101,
示例12: text_ExitInstance/***************************************************************************** text_ExitInstance* Result: void* * Effect: * Does whatever cleanup is necessary. In this case, destroys the* menu handle.****************************************************************************/void text_ExitInstance() { DestroyMenu(TextMenu); DestroyMenu(TextContextMenu); }
开发者ID:noxdafox,项目名称:clips,代码行数:13,
示例13: DlgProfileSelect//.........这里部分代码省略......... if (ListView_HitTest(hwndList, &lvht) < 0) { if (lParam != -1) break; lvht.iItem = ListView_GetSelectionMark(hwndList); RECT rc = { 0 }; if (!ListView_GetItemRect(hwndList, lvht.iItem, &rc, LVIR_LABEL)) break; lvht.pt.x = rc.left; lvht.pt.y = rc.bottom; ClientToScreen(hwndList, &lvht.pt); } else { lvht.pt.x = GET_X_LPARAM(lParam); lvht.pt.y = GET_Y_LPARAM(lParam); } HMENU hMenu = CreatePopupMenu(); AppendMenu(hMenu, MF_STRING, 1, TranslateT("Run")); AppendMenu(hMenu, MF_SEPARATOR, 0, NULL); if (ServiceExists(MS_DB_CHECKPROFILE)) { AppendMenu(hMenu, MF_STRING, 2, TranslateT("Check database")); AppendMenu(hMenu, MF_SEPARATOR, 0, NULL); } AppendMenu(hMenu, MF_STRING, 3, TranslateT("Delete")); int index = TrackPopupMenu(hMenu, TPM_RETURNCMD, lvht.pt.x, lvht.pt.y, 0, hwndDlg, NULL); switch (index) { case 1: SendMessage(GetParent(hwndDlg), WM_COMMAND, IDOK, 0); break; case 2: CheckProfile(hwndList, lvht.iItem, dat); break; case 3: DeleteProfile(hwndList, lvht.iItem, dat); break; } DestroyMenu(hMenu); } break; case WM_NOTIFY: LPNMHDR hdr = (LPNMHDR)lParam; if (hdr && hdr->code == PSN_INFOCHANGED) break; if (hdr && hdr->idFrom == IDC_PROFILELIST) { switch (hdr->code) { case LVN_ITEMCHANGED: EnableWindow(dat->hwndOK, ListView_GetSelectedCount(hwndList) == 1); case NM_DBLCLK: if (dat != NULL) { TCHAR profile[MAX_PATH]; LVITEM item = { 0 }; item.mask = LVIF_TEXT; item.iItem = ListView_GetNextItem(hwndList, -1, LVNI_SELECTED | LVNI_ALL); item.pszText = profile; item.cchTextMax = SIZEOF(profile); if (ListView_GetItem(hwndList, &item)) { // profile is placed in "profile_name" subfolder TCHAR tmpPath[MAX_PATH]; mir_sntprintf(tmpPath, SIZEOF(tmpPath), _T("%s//%s.dat"), dat->pd->szProfileDir, profile); HANDLE hFile = CreateFile(tmpPath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); if (hFile == INVALID_HANDLE_VALUE) mir_sntprintf(dat->pd->szProfile, MAX_PATH, _T("%s//%s//%s.dat"), dat->pd->szProfileDir, profile, profile); else _tcscpy(dat->pd->szProfile, tmpPath); CloseHandle(hFile); if (hdr->code == NM_DBLCLK) EndDialog(GetParent(hwndDlg), 1); } } return TRUE; case LVN_KEYDOWN: if (((LPNMLVKEYDOWN)lParam)->wVKey == VK_DELETE) DeleteProfile(hwndList, ListView_GetNextItem(hwndList, -1, LVNI_SELECTED | LVNI_ALL), dat); break; case LVN_GETINFOTIP: NMLVGETINFOTIP *pInfoTip = (NMLVGETINFOTIP *)lParam; if (pInfoTip != NULL) { TCHAR profilename[MAX_PATH], fullpath[MAX_PATH]; struct _stat statbuf; ListView_GetItemText(hwndList, pInfoTip->iItem, 0, profilename, MAX_PATH); mir_sntprintf(fullpath, SIZEOF(fullpath), _T("%s//%s//%s.dat"), dat->pd->szProfileDir, profilename, profilename); _tstat(fullpath, &statbuf); mir_sntprintf(pInfoTip->pszText, pInfoTip->cchTextMax, _T("%s/n%s: %s/n%s: %s"), fullpath, TranslateT("Created"), rtrimt(NEWTSTR_ALLOCA(_tctime(&statbuf.st_ctime))), TranslateT("Modified"), rtrimt(NEWTSTR_ALLOCA(_tctime(&statbuf.st_mtime)))); } } } break; } return FALSE;}
开发者ID:Ganster41,项目名称:miranda-ng,代码行数:101,
示例14: DestroyMenuVOID CMainWnd::OnDestroy(WPARAM wParam, LPARAM lParam){ DestroyMenu(hCurMenu);//销毁菜单资源 PostQuitMessage(0);//如果破坏窗体,则退出主线程 return;}
开发者ID:ifplusor,项目名称:SAUGamePlatform,代码行数:6,
示例15: TRACE_FUNCTION//.........这里部分代码省略......... } break; default: { } } } m_pidlManager.Delete( pItem ); pItem = NULL; } } else if( pNmhdr->code == NM_RCLICK ) { LPITEMIDLIST* ppIdl = NULL; int nSelCount = ListView_GetSelectedCount(m_hWnd); if ( nSelCount > 0 ) { ppIdl = (LPITEMIDLIST*)_Module.m_Allocator.Alloc( sizeof(LPITEMIDLIST)*nSelCount ); int iIndex = ListView_GetNextItem( m_hWnd, -1, LVIS_SELECTED ); LV_ITEM item = {0}; item.iSubItem = 0; item.mask = LVIF_PARAM; int _i = 0; while( iIndex >= 0 && _i < nSelCount ) { item.iItem = iIndex; ListView_GetItem( m_hWnd, &item ); ppIdl[_i] = m_pidlManager.Copy( ITEMLISTPTR(item.lParam) ); ++_i; iIndex = ListView_GetNextItem( m_hWnd, -1, LVIS_SELECTED ); } } LPCONTEXTMENU pMenu = NULL; HRESULT hr = E_FAIL; hr = m_pFolder->GetUIObjectOf( m_hWnd, nSelCount, / (LPCITEMIDLIST*)ppIdl, IID_IContextMenu, NULL, (void**)&pMenu ); if ( FAILED(hr) || !pMenu) { LOG(_T("IID_IContextMenu Failed")); if ( nSelCount > 0 ) { for ( int _i = 0; _i < nSelCount; ++_i ) { m_pidlManager.Delete( ppIdl[_i] ); } _Module.m_Allocator.Free( ppIdl ); } return S_OK; } HMENU hMenu = ::CreatePopupMenu(); if ( !hMenu ) { if ( nSelCount > 0 ) { for ( int _i = 0; _i < nSelCount; ++_i ) { m_pidlManager.Delete( ppIdl[_i] ); } _Module.m_Allocator.Free( ppIdl ); } return S_OK; } hr = pMenu->QueryContextMenu( hMenu, 0, 10, 32767, CMF_NORMAL | CMF_EXPLORE ); if ( FAILED(hr) ) { if ( nSelCount > 0 ) { for ( int _i = 0; _i < nSelCount; ++_i ) { m_pidlManager.Delete( ppIdl[_i] ); } _Module.m_Allocator.Free( ppIdl ); } DestroyMenu( hMenu ); return hr; } POINT point = {0}; GetCursorPos( &point ); UINT command = (UINT)TrackPopupMenu ( hMenu, TPM_RETURNCMD | TPM_LEFTALIGN, point.x, point.y, 0, m_hWnd, NULL ); CMINVOKECOMMANDINFO cmi = {0}; cmi.cbSize = sizeof (CMINVOKECOMMANDINFO); cmi.lpVerb = (LPSTR) MAKEINTRESOURCE (command-10); cmi.nShow = SW_SHOWNORMAL; pMenu->InvokeCommand( &cmi ); pMenu->Release(); if ( nSelCount > 0 ) { for ( int _i = 0; _i < nSelCount; ++_i ) { m_pidlManager.Delete( ppIdl[_i] ); } _Module.m_Allocator.Free( ppIdl ); } DestroyMenu( hMenu ); } } TRACE_RETURN S_OK;}
开发者ID:winwingy,项目名称:Study,代码行数:101,
示例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 = TabCtrl_GetCurSel(hTabWnd); 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:mikekap,项目名称:wine,代码行数:101,
示例17: switchSTDAPI CLangBarItemButton::OnClick(TfLBIClick click, POINT pt, const RECT *prcArea){ if(IsEqualGUID(_LangBarItemInfo.guidItem, GUID_LBI_INPUTMODE)) { switch(click) { case TF_LBI_CLK_RIGHT: { HMENU hMenu = LoadMenuW(g_hInst, MAKEINTRESOURCEW(IDR_SYSTRAY_MENU)); if(hMenu) { UINT check = IDM_DEFAULT; for(int i = 0; i < _countof(menuItems); i++) { if(_pTextService->inputmode == menuItems[i].inputmode) { check = menuItems[i].id; break; } } CheckMenuRadioItem(hMenu, IDM_HIRAGANA, IDM_DEFAULT, check, MF_BYCOMMAND); HMENU hSubMenu = GetSubMenu(hMenu, 0); if(hSubMenu) { TPMPARAMS tpm; TPMPARAMS *ptpm = nullptr; if(prcArea != nullptr) { tpm.cbSize = sizeof(tpm); tpm.rcExclude = *prcArea; ptpm = &tpm; } BOOL bRet = TrackPopupMenuEx(hSubMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_NONOTIFY | TPM_RETURNCMD | TPM_LEFTBUTTON | TPM_VERTICAL, pt.x, pt.y, GetFocus(), ptpm); this->OnMenuSelect(bRet); } DestroyMenu(hMenu); } } break; case TF_LBI_CLK_LEFT: { BOOL fOpen = _pTextService->_IsKeyboardOpen(); if(fOpen) { _pTextService->_ClearComposition(); } else { _pTextService->inputmode = im_disable; } _pTextService->_SetKeyboardOpen(fOpen ? FALSE : TRUE); } break; default: break; } } return S_OK;}
开发者ID:nathancorvussolis,项目名称:corvusskk,代码行数:64,
示例18: do_windowList//.........这里部分代码省略......... next_desk = Scr.CurrentDesk; else next_desk = MY_INT_MAX; } else { if (last_desk_done == MY_INT_MIN) next_desk = val2; else next_desk = MY_INT_MAX; } last_desk_done = next_desk; for (t = Scr.FvwmRoot.next; t != NULL; t = t->next) { if ( t->Desk == next_desk && (t->flags & WINDOWLISTSKIP) == 0 ) { if (++scut == ('9' + 1)) scut = 'A'; /* Next shortcut key */ if (val1 % 2 != 0) name = t->icon_name; else name = t->name; t_hot = safemalloc (strlen (name) + 48); sprintf (t_hot, "&%c. %s", scut, name); /* Generate label */ tname = safemalloc(40); tname[0] = 0; if(t->flags & ICONIFIED) strcpy (tname, "("); sprintf (loc, "%d:", t->Desk); strcat (tname, loc); if (t->frame_x >= 0) sprintf (loc, "+%d", t->frame_x); else sprintf (loc, "%d", t->frame_x); strcat (tname, loc); if (t->frame_y >=0) sprintf (loc, "+%d", t->frame_y); else sprintf (loc, "%d", t->frame_y); strcat (tname, loc); dheight = t->frame_height - t->title_height - 2*t->boundary_width; dwidth = t->frame_width - 2*t->boundary_width; dwidth -= t->hints.base_width; dheight -= t->hints.base_height; dwidth /= t->hints.width_inc; dheight /= t->hints.height_inc; sprintf (loc, "x%d", dwidth); strcat (tname, loc); sprintf (loc, "x%d", dheight); strcat (tname, loc); if (t->flags & ICONIFIED) strcat (tname, ")"); sprintf (tlabel, "RAISE_IT %ld %ld", t, t->w); strcat (t_hot, "/t"); strcat (t_hot, tname); AddToMenu (mr, t_hot, tlabel); free (t_hot); free (tname); } } } MakeMenu (mr); /* If the menu is a result of a ButtonPress, then tell do_menu() to expect (and ignore) a button release event. Otherwise, it was as a result of a keypress or something, so we shouldn't expect a button release event. Fixes problem with keyboard short cuts not working if window list is popped up by keyboard. [email C++ DestroyQuantumInfo函数代码示例 C++ DestroyMagickWand函数代码示例
|