这篇教程C++ CreatePopupMenu函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CreatePopupMenu函数的典型用法代码示例。如果您正苦于以下问题:C++ CreatePopupMenu函数的具体用法?C++ CreatePopupMenu怎么用?C++ CreatePopupMenu使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CreatePopupMenu函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: BuildDownloadArrayint FCollectionMenu::ShowContextMenu(HWND hWndParent, const FArray<FString> &aVids){ FArray<FDownload> aVideos; size_t videoCount = BuildDownloadArray(aVideos, aVids); if (videoCount == 0) return 0; vidtype videoID = aVideos[0].m_Detail.m_VideoID; FDownload &pVideo = aVideos[0]; HMENU hmenu = CreatePopupMenu(); int i = 0; if (videoCount == 1 ) { if (pVideo.m_dwFlags & FLAG_DOWNLOAD_FINISHED) _InsertMenuItem(hmenu, i++, miPlay, "Play"); if (!pVideo.IsDownloadFinished()) { if (pVideo.m_dwFlags & FLAG_DOWNLOAD_QUEUED ) _InsertMenuItem(hmenu, i++, miStart, "Start Download"); else _InsertMenuItem(hmenu, i++, miSuspend, pVideo.IsPaused() ? "Resume Download" : "Suspend Download"); } else { if (pVideo.IsDownloadableStream()) _InsertMenuItem(hmenu, i++, miStart, "Download Video"); } _InsertMenuItem(hmenu, i++, miInfo, "Info..."); _InsertMenuItem(hmenu, i++, miRename, "Rename"); } _InsertMenuItem(hmenu, i++, miDelete, "Delete"); _InsertMenuSeparator(hmenu, i++); FLabels aAllLabels; FLabels aCommonLabels; BuildLabelsUnion(aVideos, aAllLabels, aCommonLabels); HMENU hSub = CreateLabelsSubmenu(aCommonLabels, 100); _InsertSubMenu(hmenu, i++, "Label", hSub); if (videoCount == 1) _InsertMenuItem(hmenu, i++, miRevealFiles, "Reveal Files"); BOOL bShowReveal = g_AppSettings.m_LogEnabled; #ifdef _DEBUG bShowReveal = TRUE; #endif if (bShowReveal) _InsertMenuItem(hmenu, i++, miRevealMTTI, "Reveal MTTI"); POINT pt; GetCursorPos(&pt); int nCmd = TrackPopupMenu(hmenu, TPM_RETURNCMD, pt.x, pt.y, 0, hWndParent, NULL); if (nCmd < 100) { switch(nCmd) { case miPlay: g_MainFrame->PlayMediaFile(videoID); break; case miRename: { FString StrNewName = ShowRenameDlg(hWndParent, pVideo.m_Detail.m_VideoName); if (StrNewName != "") { pVideo.m_Detail.m_VideoName = StrNewName; g_Objects._DownloadManager.SaveVideoDetails(pVideo.GetVideoID(), pVideo.m_Detail); } } break; case miSuspend: for (size_t k = 0; k < aVideos.GetCount(); k++) { FDownload& pVideo = aVideos[k]; if (!pVideo.IsPaused()) g_Objects._DownloadManager.PauseDownload(videoID); else g_Objects._DownloadManager.ResumeDownload(videoID); } break; case miDelete: for (size_t k = 0; k < aVideos.GetCount(); k++) { g_MainFrame->RemoveVideo(aVideos[k].m_Detail.m_VideoID); //g_Objects._DownloadManager.RemoveDownload(aVideos[k].m_Detail.m_VideoID); } break; //.........这里部分代码省略.........
开发者ID:codeboost,项目名称:libertv,代码行数:101,
示例2: OnFavTreeContextMenustatic void OnFavTreeContextMenu(WindowInfo* win, PointI pt) { TVITEM item; if (pt.x != -1 || pt.y != -1) { TVHITTESTINFO ht = {0}; ht.pt.x = pt.x; ht.pt.y = pt.y; MapWindowPoints(HWND_DESKTOP, win->hwndFavTree, &ht.pt, 1); TreeView_HitTest(win->hwndFavTree, &ht); if ((ht.flags & TVHT_ONITEM) == 0) return; // only display menu if over a node in tree TreeView_SelectItem(win->hwndFavTree, ht.hItem); item.hItem = ht.hItem; } else { item.hItem = TreeView_GetSelection(win->hwndFavTree); if (!item.hItem) { return; } RECT rcItem; if (TreeView_GetItemRect(win->hwndFavTree, item.hItem, &rcItem, TRUE)) { MapWindowPoints(win->hwndFavTree, HWND_DESKTOP, (POINT*)&rcItem, 2); pt.x = rcItem.left; pt.y = rcItem.bottom; } else { WindowRect rc(win->hwndFavTree); pt = rc.TL(); } } item.mask = TVIF_PARAM; TreeView_GetItem(win->hwndFavTree, &item); Favorite* toDelete = (Favorite*)item.lParam; HMENU popup = BuildMenuFromMenuDef(menuDefFavContext, dimof(menuDefFavContext), CreatePopupMenu()); INT cmd = TrackPopupMenu(popup, TPM_RETURNCMD | TPM_RIGHTBUTTON, pt.x, pt.y, 0, win->hwndFavTree, nullptr); DestroyMenu(popup); if (IDM_FAV_DEL == cmd) { RememberFavTreeExpansionStateForAllWindows(); if (toDelete) { DisplayState* f = gFavorites.GetByFavorite(toDelete); gFavorites.Remove(f->filePath, toDelete->pageNo); } else { // toDelete == nullptr => this is a parent node signifying all bookmarks in a file item.hItem = TreeView_GetChild(win->hwndFavTree, item.hItem); item.mask = TVIF_PARAM; TreeView_GetItem(win->hwndFavTree, &item); toDelete = (Favorite*)item.lParam; DisplayState* f = gFavorites.GetByFavorite(toDelete); gFavorites.RemoveAllForFile(f->filePath); } UpdateFavoritesTreeForAllWindows(); prefs::Save(); // TODO: it would be nice to have a system for undo-ing things, like in Gmail, // so that we can do destructive operations without asking for permission via // invasive model dialog boxes but also allow reverting them if were done // by mistake }}
开发者ID:wyrover,项目名称:sumatrapdf,代码行数:61,
示例3: PopupMenuvoid CPsTree::PopupMenu(){ HMENU hPopup; MENUITEMINFO mii; TVHITTESTINFO hti; TVITEM tvi; POINT pt; int iItem, i; // init popup menu if (!(hPopup = CreatePopupMenu())) return; ZeroMemory(&mii, sizeof(MENUITEMINFO)); mii.cbSize = sizeof(mii); mii.fMask = MIIM_STRING|MIIM_ID; // get cursor postion GetCursorPos(&pt); hti.pt = pt; ScreenToClient(_hWndTree, &hti.pt); tvi.mask = TVIF_PARAM|TVIF_CHILDREN; // find treeitem under cursor TreeView_HitTest(_hWndTree, &hti); if (hti.flags & (TVHT_ONITEM|TVHT_ONITEMRIGHT)) { tvi.hItem = hti.hItem; TreeView_GetItem(_hWndTree, &tvi); if (!db_get_b(NULL, MODNAME, SET_PROPSHEET_READONLYLABEL, FALSE)) { mii.dwTypeData = TranslateT("Rename Item"); mii.wID = 32001; InsertMenuItem(hPopup, 0, FALSE, &mii); } // do not allow hiding groups if (tvi.cChildren) { mii.fMask |= MIIM_STATE; mii.fState = MFS_DISABLED; } mii.dwTypeData = TranslateT("Hide Item"); mii.wID = 32000; InsertMenuItem(hPopup, 0, FALSE, &mii); } else { // add hidden items to menu mii.wID = 0; for (i = 0; i < _numItems; i++) { if (!_pItems[i]->Hti()) { mii.dwTypeData = _pItems[i]->Label(); mii.wID = 100 + i; InsertMenuItem(hPopup, 0, FALSE, &mii); } } // add headline if (mii.wID > 0) { mii.fMask |= MIIM_STATE; mii.fState = MFS_DISABLED; mii.dwTypeData = TranslateT("Show Items:"); mii.wID = 0; InsertMenuItem(hPopup, 0, TRUE, &mii); mii.fMask |= MIIM_FTYPE; mii.fType = MFT_SEPARATOR; InsertMenuItem(hPopup, 1, TRUE, &mii); InsertMenuItem(hPopup, ++i, TRUE, &mii); } mii.fMask &= ~(MIIM_FTYPE|MIIM_STATE); mii.dwTypeData = TranslateT("Reset to defaults"); mii.wID = 32004; InsertMenuItem(hPopup, ++i, TRUE, &mii); } // show the popup menu iItem = TrackPopupMenu(hPopup, TPM_RETURNCMD, pt.x, pt.y, 0, _hWndTree, NULL); DestroyMenu(hPopup); switch (iItem) { // hide the item case 32000: HideItem(tvi.lParam); break; // rename the item case 32001: BeginLabelEdit(tvi.hItem); break; // reset current tree case 32004: DBResetState(); break; // show a hidden item default: if ((iItem -= 100) >= 0 && ShowItem(iItem, NULL)) AddFlags(PSTVF_STATE_CHANGED|PSTVF_POS_CHANGED); break; }}
开发者ID:0xmono,项目名称:miranda-ng,代码行数:94,
示例4: 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,
示例5: WndProcLRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){ switch(msg) {#if MENU_2 case WM_CREATE: { HMENU hMenu, hSubMenu; HICON hIcon, hIconSm; hMenu = CreateMenu(); //create submenu hSubMenu = CreatePopupMenu(); AppendMenu(hSubMenu, MF_STRING, ID_FILE_EXIT, "E&xit"); AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&File"); hSubMenu = CreatePopupMenu(); AppendMenu(hSubMenu,MF_STRING,ID_STUFF_GO, "&Go"); AppendMenu(hMenu,MF_STRING | MF_POPUP, (UINT)hSubMenu, "&stuff"); SetMenu(hwnd,hMenu); hIcon = (HICON)LoadImage(NULL, "menu_two.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE); if(hIcon) //success SendMessage(hwnd,WM_SETICON,ICON_BIG,(LPARAM)hIcon); else //fail MessageBox(hwnd,"Could not load large icon","Error",MB_OK | MB_ICONERROR); hIconSm = (HICON)LoadImage(NULL, "menu_two.ico", IMAGE_ICON,16,16,LR_LOADFROMFILE); if(hIconSm) //success SendMessage(hwnd,WM_SETICON,ICON_SMALL,(LPARAM)hIconSm); else MessageBox(hwnd,"Could not load small icon","Error", MB_OK | MB_ICONERROR); } break;#endif case WM_COMMAND: switch(LOWORD(wParam)) { case ID_HELP_ABOUT: { int ret = DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_ABOUT),hwnd,AboutDlgProc); if(ret == IDOK) MessageBox(hwnd,"Dialog exited with OK","Notice",MB_OK | MB_ICONINFORMATION); else if(ret == IDCANCEL) MessageBox(hwnd,"Dialog exited with Cancel","Notice", MB_OK | MB_ICONINFORMATION); else if(ret == -1) MessageBox(hwnd,"Dialog Failed!","Error",MB_OK | MB_ICONEXCLAMATION); } break; case ID_FILE_EXIT: PostMessage(hwnd,WM_CLOSE,0,0); break; case ID_STUFF_GO: MessageBox(hwnd,"I go do something.","Do it",MB_OK); break; } break; case WM_LBUTTONDOWN: { char szFileName[MAX_PATH]; HINSTANCE hInstance = GetModuleHandle(NULL); //return a handle to the file used to //create a calling process GetModuleFileName(hInstance, szFileName, MAX_PATH); //a pointer to a buffer that recives the path and file name // of the specidied module MessageBox(hwnd, szFileName, "This program is:", MB_OK | MB_ICONINFORMATION); break; } case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,msg,wParam,lParam); //most likely does nothing } return 0;}
开发者ID:pkhruasu,项目名称:winform32,代码行数:80,
示例6: switch//.........这里部分代码省略......... if (set) { get_host()->override_status_text_create(p_status_override); if (p_status_override.is_valid()) { p_status_override->override_text(desc); } } m_status_override = p_status_override; } } } break; case WM_CONTEXTMENU: { uie::window_ptr p_this_temp = this; if ((HWND)wp == wnd_header) { POINT pt = { (short)LOWORD(lp), (short)HIWORD(lp) }; POINT temp; temp.x = pt.x; temp.y = pt.y; ScreenToClient(wnd_header, &temp); HDHITTESTINFO hittest; hittest.pt.x = temp.x; hittest.pt.y = temp.y; uSendMessage(wnd_header, HDM_HITTEST, 0, (LPARAM)&hittest); enum { IDM_ASC = 1, IDM_DES = 2, IDM_SEL_ASC, IDM_SEL_DES, IDM_AUTOSIZE, IDM_PREFS, IDM_EDIT_COLUMN, IDM_CUSTOM_BASE }; HMENU menu = CreatePopupMenu(); HMENU selection_menu = CreatePopupMenu(); if (!(hittest.flags & HHT_NOWHERE)) { uAppendMenu(menu, (MF_STRING), IDM_ASC, "&Sort ascending"); uAppendMenu(menu, (MF_STRING), IDM_DES, "Sort &descending"); uAppendMenu(selection_menu, (MF_STRING), IDM_SEL_ASC, "Sort a&scending"); uAppendMenu(selection_menu, (MF_STRING), IDM_SEL_DES, "Sort d&escending"); uAppendMenu(menu, MF_STRING | MF_POPUP, (UINT)selection_menu, "Se&lection"); uAppendMenu(menu, (MF_SEPARATOR), 0, ""); uAppendMenu(menu, (MF_STRING), IDM_EDIT_COLUMN, "&Edit this column"); uAppendMenu(menu, (MF_SEPARATOR), 0, ""); uAppendMenu(menu, (MF_STRING | (cfg_nohscroll ? MF_CHECKED : MF_UNCHECKED)), IDM_AUTOSIZE, "&Auto-sizing columns"); uAppendMenu(menu, (MF_STRING), IDM_PREFS, "&Preferences"); uAppendMenu(menu, (MF_SEPARATOR), 0, ""); pfc::string8 playlist_name; static_api_ptr_t<playlist_manager> playlist_api; playlist_api->activeplaylist_get_name(playlist_name); pfc::string8_fast_aggressive filter, name; int s, e = columns.get_count(); for (s = 0; s<e; s++) { bool add = false; switch (columns[s]->filter_type) { case FILTER_NONE: { add = true; break; }
开发者ID:9060,项目名称:columns_ui,代码行数:67,
示例7: switchLRESULT album_list_window::on_message(HWND wnd, UINT msg, WPARAM wp, LPARAM lp){ switch (msg) { case WM_CREATE: { list_wnd.add_item(this); initialised = true; modeless_dialog_manager::g_add(wnd); create_tree(); create_filter(); if (cfg_populate) refresh_tree(); static_api_ptr_t<library_manager_v3>()->register_callback(this); } break; /*case WM_GETMINMAXINFO: { LPMINMAXINFO mmi = LPMINMAXINFO(lp); mmi->ptMinTrackSize.y = cfg_height; return 0; }*/ case WM_SIZE: on_size(LOWORD(lp), HIWORD(lp)); break; /* case DM_GETDEFID: return (DC_HASDEFID<<16|IDOK); case WM_GETDLGCODE: return DLGC_DEFPUSHBUTTON;*/ // break; case WM_TIMER: if (wp == EDIT_TIMER_ID) { refresh_tree(); KillTimer(wnd, wp); m_timer = false; } break; case WM_COMMAND: switch (wp) { case IDC_FILTER | (EN_CHANGE << 16) : if (m_timer) KillTimer(wnd_edit, 500); m_timer = SetTimer(wnd, EDIT_TIMER_ID, 500, NULL) != 0; return TRUE; case IDOK: if (GetKeyState(VK_SHIFT) & KF_UP) do_playlist(p_selection, false); else if (GetKeyState(VK_CONTROL) & KF_UP) do_playlist(p_selection, true, true); else do_playlist(p_selection, true); return 0; } break; case WM_CONTEXTMENU: { enum { ID_SEND = 1, ID_ADD, ID_NEW, ID_AUTOSEND, ID_REMOVE, ID_REMOVEDEAD, ID_REFRESH, ID_FILT, ID_CONF, ID_VIEW_BASE }; HMENU menu = CreatePopupMenu(); POINT pt = { GET_X_LPARAM(lp), GET_Y_LPARAM(lp) }; service_ptr_t<contextmenu_manager> p_menu_manager; unsigned IDM_MANAGER_BASE = 0; HWND list = wnd_tv; HTREEITEM treeitem = NULL; TVHITTESTINFO ti; memset(&ti, 0, sizeof(ti)); if (pt.x != -1 && pt.y != -1) { ti.pt = pt; ScreenToClient(list, &ti.pt); uSendMessage(list, TVM_HITTEST, 0, (long)&ti); if (ti.hItem && (ti.flags & TVHT_ONITEM)) { //FIX THIS AND AUTOSEND //TreeView_Select(list, ti.hItem, TVGN_DROPHILITE); //uSendMessage(list,TVM_SELECTITEM,TVGN_DROPHILITE,(long)ti.hItem); treeitem = ti.hItem; } } else { treeitem = TreeView_GetSelection(list); RECT rc; if (treeitem && TreeView_GetItemRect(wnd_tv, treeitem, &rc, TRUE)) { MapWindowPoints(wnd_tv, HWND_DESKTOP, (LPPOINT)&rc, 2); pt.x = rc.left; pt.y = rc.top + (rc.bottom - rc.top) / 2;//.........这里部分代码省略.........
开发者ID:ASopH,项目名称:columns_ui,代码行数:101,
示例8: CPlaylistWindow_RenameMenuvoid CPlaylistWindow_RenameMenu(const int iItem, const int iSubItem){ HWND hWndList; POINT ptItem; RECT rSubItem; HMENU hmMenu; UINT uiMenuCommand; // We want to get the subitem's rect in the co-ordinate space of the dialog hWndList = CLV_GetHWND(globals.m_hPlaylistViewControl); CLV_GetItemSubRect(globals.m_hPlaylistViewControl, &rSubItem, iItem, iSubItem); ptItem.x = rSubItem.left; ptItem.y = rSubItem.bottom; ClientToScreen(hWndList, &ptItem); // Create menu hmMenu = CreatePopupMenu(); AppendMenu(hmMenu, MF_STRING, (DWORD)rwsArtistAlbumNumberTitle, "Rename to <artist> - <album> - <tracknum> - <title>"); AppendMenu(hmMenu, MF_STRING, (DWORD)rwsArtistNumberTitle, "Rename to <artist> - <tracknum> - <title>"); AppendMenu(hmMenu, MF_STRING, (DWORD)rwsAlbumNumberTitle, "Rename to <album> - <tracknum> - <title>"); AppendMenu(hmMenu, MF_STRING, (DWORD)rwsAlbumNumber, "Rename to <album> - <tracknum>"); AppendMenu(hmMenu, MF_STRING, (DWORD)rwsNumberTitle, "Rename to <tracknum> - <title>"); AppendMenu(hmMenu, MF_STRING, (DWORD)rwsTitle, "Rename to <title>"); uiMenuCommand = TrackPopupMenuEx(hmMenu, TPM_NONOTIFY | TPM_RETURNCMD | TPM_RIGHTBUTTON, ptItem.x, ptItem.y, IF_GetHWnd(windows.m_hifPlaylist), NULL); DestroyMenu(hmMenu); if (uiMenuCommand) { int iSearchItemIDX; int iNumberOfErrors; iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM); iNumberOfErrors = 0; while (iSearchItemIDX != CPC_INVALIDITEM) { BOOL bSucceeded; bSucceeded = CPLI_RenameTrack((CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iSearchItemIDX), (CPe_FilenameFormat)uiMenuCommand); iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX); if (!bSucceeded) iNumberOfErrors++; } if (iNumberOfErrors > 0) { MessageBox(IF_GetHWnd(windows.m_hifPlaylist), "Some files could not be renamed./n/nThis could be because they are either currently playing or are read-only.", "Error", MB_OK | MB_ICONASTERISK); } }}
开发者ID:Runcy,项目名称:coolplayer,代码行数:62,
示例9: OleUIAddVerbMenuW/*********************************************************************** * OleUIAddVerbMenuW (OLEDLG.14) */BOOL WINAPI OleUIAddVerbMenuW(IOleObject *object, LPCWSTR shorttype, HMENU hMenu, UINT uPos, UINT idmin, UINT idmax, BOOL addConvert, UINT idConvert, HMENU *ret_submenu){ IEnumOLEVERB *enumverbs = NULL; LPOLESTR usertype = NULL; OLEVERB firstverb, verb; WCHAR *objecttype; WCHAR resstrW[32]; /* should be enough */ DWORD_PTR args[2]; BOOL singleverb; HMENU submenu; WCHAR *str; TRACE("(%p, %s, %p, %d, %d, %d, %d, %d, %p)/n", object, debugstr_w(shorttype), hMenu, uPos, idmin, idmax, addConvert, idConvert, ret_submenu); if (ret_submenu) *ret_submenu = NULL; if (!hMenu || !ret_submenu) return FALSE; /* check if we can get verbs at all */ if (object) IOleObject_EnumVerbs(object, &enumverbs); LoadStringW(OLEDLG_hInstance, IDS_VERBMENU_OBJECT, resstrW, sizeof(resstrW)/sizeof(WCHAR)); /* no object, or object without enumeration support */ if (!object || !enumverbs) { InsertMenuW(hMenu, uPos, MF_BYPOSITION|MF_STRING|MF_GRAYED, idmin, resstrW); return FALSE; } /* root entry string */ if (!shorttype && (IOleObject_GetUserType(object, USERCLASSTYPE_SHORT, &usertype) == S_OK)) objecttype = usertype; else objecttype = (WCHAR*)shorttype; /* iterate through verbs */ /* find first suitable verb */ get_next_insertable_verb(enumverbs, idmin, idmax, &firstverb); singleverb = get_next_insertable_verb(enumverbs, idmin, idmax, &verb) != S_OK; if (singleverb && !addConvert) { LoadStringW(OLEDLG_hInstance, IDS_VERBMENU_SINGLEVERB_OBJECT, resstrW, sizeof(resstrW)/sizeof(WCHAR)); args[0] = (DWORD_PTR)firstverb.lpszVerbName; args[1] = (DWORD_PTR)objecttype; FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_ARGUMENT_ARRAY, resstrW, 0, 0, (WCHAR*)&str, 0, (__ms_va_list*)args); RemoveMenu(hMenu, uPos, MF_BYPOSITION); InsertMenuW(hMenu, uPos, MF_BYPOSITION|MF_STRING, idmin, str); CoTaskMemFree(firstverb.lpszVerbName); HeapFree(GetProcessHeap(), 0, str); IEnumOLEVERB_Release(enumverbs); CoTaskMemFree(usertype); return TRUE; } submenu = CreatePopupMenu(); insert_verb_to_menu(submenu, idmin, &firstverb); CoTaskMemFree(firstverb.lpszVerbName); if (!singleverb) { insert_verb_to_menu(submenu, idmin, &verb); CoTaskMemFree(verb.lpszVerbName); } while (get_next_insertable_verb(enumverbs, idmin, idmax, &verb) == S_OK) { insert_verb_to_menu(submenu, idmin, &verb); CoTaskMemFree(verb.lpszVerbName); } /* convert verb is at the bottom of a popup, separated from verbs */ if (addConvert) { LoadStringW(OLEDLG_hInstance, IDS_VERBMENU_CONVERT, resstrW, sizeof(resstrW)/sizeof(WCHAR)); InsertMenuW(submenu, ~0, MF_BYPOSITION|MF_SEPARATOR, 0, NULL); InsertMenuW(submenu, ~0, MF_BYPOSITION|MF_STRING, idConvert, resstrW); } if (submenu) *ret_submenu = submenu; /* now submenu is ready, add root entry to original menu, attach submenu */ LoadStringW(OLEDLG_hInstance, IDS_VERBMENU_OBJECT_WITH_NAME, resstrW, sizeof(resstrW)/sizeof(WCHAR)); args[0] = (DWORD_PTR)objecttype; FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_ARGUMENT_ARRAY, resstrW, 0, 0, (WCHAR*)&str, 0, (__ms_va_list*)args); InsertMenuW(hMenu, uPos, MF_BYPOSITION|MF_POPUP|MF_STRING, (UINT_PTR)submenu, str); HeapFree(GetProcessHeap(), 0, str); IEnumOLEVERB_Release(enumverbs);//.........这里部分代码省略.........
开发者ID:Strongc,项目名称:reactos,代码行数:101,
示例10: GetClientRectLRESULT nsf_window::onCreate(UINT uMsg, WPARAM wParam, LPARAM lParam){ RECT rcClient; GetClientRect(&rcClient); // get nsd/nsf unsigned long params[2]; params[0] = (unsigned long)&nsf; params[1] = (unsigned long)&nsd; SendMessageRoot(MSG_GET_NSD, (WPARAM)0, (LPARAM)params); mainList = new entryList(IDC_MAINTREE, ENTRYLIST_NSF, nsf, nsd, 0, 0, 200, rcClient.bottom, hSelf); globalList = new entryList(IDC_GLOBALTREE, ENTRYLIST_DEFAULT, nsf, nsd, 484, 0, 118, rcClient.bottom, hSelf); lookupList = new entryList(IDC_LOOKUPTREE, ENTRYLIST_NSD, nsf, nsd, 602, 0, 236, rcClient.bottom, hSelf); //484, 354 hCodeMenu = CreatePopupMenu(); AppendMenu(hCodeMenu, MF_STRING, ID_GOOL_VIEW, "Open in Code View"); hModelMenuA = CreatePopupMenu(); AppendMenu(hModelMenuA, MF_STRING, ID_MODEL_VIEW, "Open in Model/Zone View"); AppendMenu(hModelMenuA, MF_SEPARATOR, ID_SEPARATOR, ""); AppendMenu(hModelMenuA, MF_STRING, ID_MODEL_EXPORT_AS_COLLADA, "Export as COLLADA"); hModelMenuB = CreatePopupMenu(); AppendMenu(hModelMenuB, MF_STRING, ID_MODEL_EXPORT_AS_MD3, "Export as .MD3"); CreateWindowEx(0, WC_STATIC, "", WS_CHILD | WS_VISIBLE | SS_ETCHEDFRAME, 210, 10, 250, 110, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "Type: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 25, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "Entry Count: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 55, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "Checksum: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 85, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 25, 100, 22, hSelf, (HMENU)IDC_CHUNKTYPEEDIT, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 55, 100, 22, hSelf, (HMENU)IDC_CHUNKENTRYCOUNTEDIT, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 85, 100, 22, hSelf, (HMENU)IDC_CHUNKCHECKSUMEDIT, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "", WS_CHILD | WS_VISIBLE | SS_ETCHEDFRAME, 210, 130, 250, 110, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "Type: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 145, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "Item Count: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 175, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(0, WC_STATIC, "n/a: ", WS_CHILD | WS_VISIBLE | SS_CENTER, 220, 205, 110, 22, hSelf, NULL, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 145, 100, 22, hSelf, (HMENU)IDC_ENTRYTYPEEDIT, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 175, 100, 22, hSelf, (HMENU)IDC_ENTRYITEMCOUNTEDIT, hInstance, NULL); CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE, 320, 205, 100, 22, hSelf, (HMENU)IDC_UNUSEDEDIT, hInstance, NULL); mainList->occupy(); lookupList->occupy(); //.........这里部分代码省略.........
开发者ID:Almamu,项目名称:crashutils,代码行数:101,
示例11: CPlaylistWindow_TrackStackMenuvoid CPlaylistWindow_TrackStackMenu(iItem){ HWND hWndList; POINT ptItem; RECT rSubItem; HMENU hmMenu; UINT uiMenuCommand; int iSearchItemIDX; CP_HPLAYLISTITEM hClickedItem; CPe_ItemStackState enClickedItemState; BOOL bMultipleSelection; // We want to get the subitem's rect in the co-ordinate space of the dialog hWndList = CLV_GetHWND(globals.m_hPlaylistViewControl); CLV_GetItemSubRect(globals.m_hPlaylistViewControl, &rSubItem, iItem, 0); // Are there multiple items selected? iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, CPC_INVALIDITEM); if (iSearchItemIDX != CPC_INVALIDITEM) iSearchItemIDX = CLV_GetNextSelectedItem(globals.m_hPlaylistViewControl, iSearchItemIDX); if (iSearchItemIDX != CPC_INVALIDITEM) bMultipleSelection = TRUE; else bMultipleSelection = FALSE; ptItem.x = rSubItem.left; ptItem.y = rSubItem.bottom; ClientToScreen(hWndList, &ptItem); // Create menu hmMenu = CreatePopupMenu(); hClickedItem = (CP_HPLAYLISTITEM)CLV_GetItemData(globals.m_hPlaylistViewControl, iItem); enClickedItemState = CPL_Stack_GetItemState(globals.m_hPlaylist, hClickedItem); if (enClickedItemState != issUnstacked) { AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYFROMHERE, "Play from here"); SetMenuDefaultItem(hmMenu, IDC_CMDTS_PLAYFROMHERE, FALSE); if (enClickedItemState != issStacked_Top) { AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYNEXT, "Play next"); AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_UNSTACK, "Unstack"); } // Not played yet? if (enClickedItemState == issStacked || enClickedItemState == issStacked_Top) { if (options.repeat_playlist == TRUE) { AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_STOPAFTER, "Repeat after this"); AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_STOPAFTER_NOREP, "Stop after this (repeat->off)"); } else { AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_STOPAFTER, "Stop after this"); } } if (enClickedItemState != issStacked_Top) AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_QUEUE, "Queue at end"); } else { AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYNOW, "Play now"); SetMenuDefaultItem(hmMenu, IDC_CMDTS_PLAYNOW, FALSE); AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_PLAYNEXT, "Play next"); AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_QUEUE, "Queue at end"); } AppendMenu(hmMenu, MF_SEPARATOR, 0, NULL); AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_CLEARSTACK, "Clear stack"); AppendMenu(hmMenu, MF_STRING, IDC_CMDTS_RESTACKALL, "Restack all"); uiMenuCommand = TrackPopupMenuEx(hmMenu, TPM_NONOTIFY | TPM_RETURNCMD | TPM_RIGHTBUTTON, ptItem.x, ptItem.y, IF_GetHWnd(windows.m_hifPlaylist), NULL); DestroyMenu(hmMenu); if (uiMenuCommand == IDC_CMDTS_CLEARSTACK) { CPL_Stack_Clear(globals.m_hPlaylist); } else if (uiMenuCommand == IDC_CMDTS_RESTACKALL) { CPL_Stack_RestackAll(globals.m_hPlaylist);//.........这里部分代码省略.........
开发者ID:Runcy,项目名称:coolplayer,代码行数:101,
示例12: spline_win_messageint spline_win_message(SCREEN *sc,HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam){ extern SPLINE_EDIT spline_edit; typedef enum CMDMENU{ CMD_ADDKEY,CMD_DELKEY }; static int clickx=0,clicky=0,debounce=0; static PARAM_CONTROL *pcdrag=0; static HMENU hmenu=0; static SPLINE_KEY_CONTROL *selected_key=0; PARAM_CONTROL *p; p=spline_edit.plist.list; if(FALSE) if(msg!=WM_PAINT&&msg!=WM_SETCURSOR&&msg!=WM_NCHITTEST&&msg!=WM_ENTERIDLE) { static DWORD tick; if((GetTickCount()-tick)>500) printf("--/n"); printf("spl"); print_msg(msg,lparam,wparam,hwnd); tick=GetTickCount(); } switch(msg){ case WM_CREATE: { hmenu=CreatePopupMenu(); if(hmenu){ InsertMenu(hmenu,0xFFFFFFFF,MF_BYPOSITION,CMD_ADDKEY,"add key"); InsertMenu(hmenu,0xFFFFFFFF,MF_BYPOSITION,CMD_DELKEY,"delete key"); } } break; case WM_CONTEXTMENU: if(hmenu){ POINT point; int x,y; point.x=x=LOWORD(lparam); point.y=y=HIWORD(lparam); MapWindowPoints(NULL,hwnd,&point,1); clickx=x; clicky=y; point.x+=spline_edit.plist.si.hscroll; point.y+=spline_edit.plist.si.vscroll; if(hittest_param(p,point.x,point.y,0)){ TrackPopupMenu(hmenu,TPM_LEFTALIGN,x,y,0,hwnd,NULL); } } break; case WM_KEYFIRST: switch(wparam){ case VK_DELETE: PostMessage(hwnd,WM_COMMAND,CMD_DELKEY,0); break; } break; case WM_COMMAND: { PARAM_CONTROL *pc=0; if(p){ find_param_type(&spline_edit.plist,CSPLINE,&pc); if(pc){ } } switch(LOWORD(wparam)){ case CMD_ADDKEY: { SPLINE_KEY *sk=0; POINT p; p.x=clickx; p.y=clicky; MapWindowPoints(NULL,hwnd,&p,1); p.x+=spline_edit.plist.si.hscroll; p.y+=spline_edit.plist.si.vscroll; add_splinekey(pc,&sk,p.x,p.y); } break; case CMD_DELKEY: del_sel_keys(pc); break; } } break; case WM_MOUSEWHEEL: { POINT point; PARAM_CONTROL *pc=0; point.x=LOWORD(lparam); point.y=HIWORD(lparam); MapWindowPoints(NULL,hwnd,&point,1); point.x+=spline_edit.plist.si.hscroll; point.y+=spline_edit.plist.si.vscroll; if(hittest_param(p,point.x,point.y,&pc) && pc->control.type==CDROPLIST){ signed short deltay=(HIWORD(wparam)); send_mouse_wheel(pc,deltay); update_spline_selection(&spline_edit.plist); }//.........这里部分代码省略.........
开发者ID:pinchyCZN,项目名称:demo_tool,代码行数:101,
示例13: LabelMenuPopUp::MenuPopUp(std::string text) : Label(text, 0, 0, 0, 0){ hwnd = (HWND)CreatePopupMenu();}
开发者ID:sypherce,项目名称:ds2key,代码行数:4,
示例14: EV_DlgMainBOOL CALLBACK EV_DlgMain(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam){ switch(uMsg) { case WM_INITDIALOG: { EV_shared=hwndDlg; EV_list_hwnd=GetDlgItem(hwndDlg, IDC_LIST); } return TRUE; case WM_CLOSE: { EndDialog(hwndDlg, 0); } return TRUE; case WM_BROWSE: { SendMessageA(EV_list_hwnd, LB_RESETCONTENT, 0, 0); strcpy(EV_szFileName, (const char*)wParam); strcpy(EV_program_dir, EV_szFileName); int i=strlen(EV_program_dir); while(EV_program_dir[i]!='//') i--; EV_program_dir[i]=0; CreateThread(0, 0, EV_DebugThread, 0, 0, 0); } return TRUE; case WM_DROPFILES: { SendMessageA(EV_list_hwnd, LB_RESETCONTENT, 0, 0); DragQueryFileA((HDROP)wParam, 0, EV_szFileName, MAX_PATH); strcpy(EV_program_dir, EV_szFileName); int i=strlen(EV_program_dir); while(EV_program_dir[i]!='//') i--; EV_program_dir[i]=0; CreateThread(0, 0, EV_DebugThread, 0, 0, 0); } return TRUE; case WM_CONTEXTMENU: { if(GetDlgCtrlID((HWND)wParam)==IDC_LIST) { LeftClick(); LeftClick(); } } return TRUE; case WM_HELP: { char id[10]=""; sprintf(id, "%d", IDS_HELPEVLOG); SetEnvironmentVariableA("HELPID", id); SetEnvironmentVariableA("HELPTITLE", "EVLog Help"); DialogBox(hInst, MAKEINTRESOURCE(DLG_HELP), hwndDlg, DlgHelp); } return TRUE; case WM_COMMAND: { switch(LOWORD(wParam)) { case IDC_LIST: { switch(HIWORD(wParam)) { case LBN_DBLCLK: { int cursel=SendMessageA(EV_list_hwnd, LB_GETCURSEL, 0, 0); int count=SendMessageA(EV_list_hwnd, LB_GETCOUNT, 0, 0); if(!count) return TRUE; char line_text[1024]=""; char var_name[512]=""; char var_value[512]=""; SendMessageA(EV_list_hwnd, LB_GETTEXT, cursel, (LPARAM)line_text); int len=strlen(line_text); for(int i=0,j=0,k=0,l=0; i<len; i++) { if(line_text[i]=='=') { i++; j=1; } if(!j) k+=sprintf(var_name+k, "%c", line_text[i]); else l+=sprintf(var_value+l, "%c", line_text[i]); } HMENU myMenu=0; myMenu=CreatePopupMenu(); AppendMenu(myMenu, MF_STRING, 1, "Copy Variable &Name"); if(strcmp(var_value, "(0)")) AppendMenu(myMenu, MF_STRING, 2, "Copy Variable &Value"); AppendMenu(myMenu, MF_STRING, 3, "Copy &Line");//.........这里部分代码省略.........
开发者ID:cdaze,项目名称:akt,代码行数:101,
示例15: switch//.........这里部分代码省略......... { m_panel_dragging_valid = false; if (GetCapture() == wnd) ReleaseCapture(); //SetCursor(LoadCursor(0, IDC_ARROW)); } break;#if 0 case WM_PAINT: { PAINTSTRUCT ps; BeginPaint(wnd, &ps); COLORREF cr = GetSysColor(COLOR_3DFACE); gdi_object_t<HBRUSH>::ptr_t br_line = CreateSolidBrush(/*RGB(226, 226, 226)*/cr); t_size n, count = m_panels.get_count(); for (n = 0; n + 1<count; n++) { pfc::refcounted_object_ptr_t<panel> p_item = m_panels.get_item(n); if (p_item->m_wnd_child) { RECT rc_area; GetRelativeRect(p_item->m_wnd_child, m_wnd, &rc_area); if (get_orientation() == vertical) { rc_area.top = rc_area.bottom; rc_area.bottom += 2; //FillRect(ps.hdc, &rc_area, GetSysColorBrush(COLOR_WINDOW)); //rc_area.top++; } else { rc_area.left = rc_area.right; rc_area.right += 2; //FillRect(ps.hdc, &rc_area, GetSysColorBrush(COLOR_WINDOW)); //rc_area.right--; } FillRect(ps.hdc, &rc_area, br_line); } } EndPaint(wnd, &ps); } ;#endif#if 0 case WM_CONTEXTMENU: if ((HWND)wp == wnd) { window_transparent_fill m_trans_fill; if (m_layout_editing_active) { RECT rc; GetRelativeRect(wnd, HWND_DESKTOP, &rc); ShowWindow(m_trans_fill.create(get_wnd(), 0, ui_helpers::window_position_t(rc)), SW_SHOWNORMAL); POINT pt = { GET_X_LPARAM(lp), GET_Y_LPARAM(lp) }; HMENU menu = CreatePopupMenu(); HMENU menu_add = CreatePopupMenu(); uie::window_info_list_simple panels; g_get_panel_list(panels); enum { ID_CLOSE = 1, ID_ADD_BASE = 2 }; g_append_menu_panels(menu_add, panels, ID_ADD_BASE); pfc::string8 temp; get_name(temp); uAppendMenu(menu, MF_STRING | MF_GRAYED, (UINT_PTR)0, temp); uAppendMenu(menu, MF_MENUBREAK, (UINT_PTR)0, NULL); AppendMenu(menu, MF_STRING | MF_POPUP, (UINT_PTR)menu_add, L"Add panel"); int cmd = TrackPopupMenu(menu, TPM_RIGHTBUTTON | TPM_NONOTIFY | TPM_RETURNCMD, pt.x, pt.y, 0, m_trans_fill.get_wnd(), 0); DestroyMenu(menu); m_trans_fill.destroy(); if (cmd) { if (cmd >= ID_ADD_BASE && cmd < panels.get_count() + ID_ADD_BASE) { pfc::refcounted_object_ptr_t<panel> ptr = new panel; ptr->m_guid = panels[cmd - ID_ADD_BASE].guid; m_panels.add_item(ptr); refresh_children(); get_host()->on_size_limit_change(get_wnd(), uie::size_limit_all); uie::splitter_window_v2_ptr sw2; if (ptr->m_child.is_valid() && ptr->m_child->service_query_t(sw2)) { sw2->enter_layout_editing_mode(); } } } } return 0; } break;#endif } return DefWindowProc(wnd, msg, wp, lp);}
开发者ID:i7voodoo,项目名称:columns_ui,代码行数:101,
示例16: PopupsListSubclassProc//subclass proc for the list viewBOOL CALLBACK PopupsListSubclassProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){ switch (msg) { case WM_CONTEXTMENU: { int x = LOWORD(lParam); int y = HIWORD(lParam); int selection; HMENU hMenu = CreatePopupMenu(); AppendMenu(hMenu, MF_STRING, POPUPMENU_TITLE, TranslateT("Copy title to clipboard")); AppendMenu(hMenu, MF_STRING, POPUPMENU_MESSAGE, TranslateT("Copy message to clipboard")); AppendMenu(hMenu, MF_STRING, POPUPMENU_TIMESTAMP, TranslateT("Copy timestamp to clipboard")); selection = TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD, x, y, 0, hWnd, NULL); DestroyMenu(hMenu); if (selection) { CopyPopupDataToClipboard(hWnd, selection); } break; } case WM_KEYUP: { switch (wParam) { case 'C': { if (GetKeyState(VK_CONTROL)) { CopyPopupDataToClipboard(hWnd, POPUPMENU_MESSAGE); } break; } case VK_ESCAPE: { SendMessage(GetParent(hWnd), WM_CLOSE, 0, 0); break; } } break; } case WM_SYSKEYDOWN: { if (wParam == 'X') { SendMessage(GetParent(hWnd), WM_CLOSE, 0, 0); } break; } } return CallWindowProc(oldPopupsListProc, hWnd, msg, wParam, lParam);}
开发者ID:darkscout,项目名称:sje-miranda-plugins,代码行数:64,
示例17: DlgProc/* Main Dialog */BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam){ int ret_code = 0; switch(Message) { case WM_INITDIALOG: { int statwidths[] = {130, -1}; HMENU hMenu, hSubMenu; UINT menuflags = MF_STRING; if(config_inst.admin_access == 0) { menuflags = MF_STRING|MF_GRAYED; } hMenu = CreateMenu(); /* Creating management menu */ hSubMenu = CreatePopupMenu(); AppendMenu(hSubMenu, menuflags, UI_MENU_MANAGE_START,"&Start OSSEC"); AppendMenu(hSubMenu, menuflags, UI_MENU_MANAGE_STOP,"&Stop OSSEC"); AppendMenu(hSubMenu, MF_SEPARATOR, UI_MENU_NONE,""); AppendMenu(hSubMenu, menuflags, UI_MENU_MANAGE_RESTART,"&Restart"); AppendMenu(hSubMenu, menuflags, UI_MENU_MANAGE_STATUS,"&Status"); AppendMenu(hSubMenu, MF_SEPARATOR, UI_MENU_NONE,""); AppendMenu(hSubMenu, MF_STRING,UI_MENU_MANAGE_EXIT,"&Exit"); AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu,"&Manage"); /* Create view menu */ hSubMenu = CreatePopupMenu(); AppendMenu(hSubMenu, MF_STRING, UI_MENU_VIEW_LOGS, "&View Logs"); AppendMenu(hSubMenu, MF_STRING, UI_MENU_VIEW_CONFIG,"V&iew Config"); AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu,"&View"); hSubMenu = CreatePopupMenu(); AppendMenu(hSubMenu, MF_STRING, UI_MENU_HELP_ABOUT, "A&bout"); AppendMenu(hSubMenu, MF_STRING, UI_MENU_HELP_HELP, "Help"); AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Help"); AppendMenu(hMenu, MF_SEPARATOR, 0, NULL); SetMenu(hwnd, hMenu); hStatus = CreateWindowEx(0, STATUSCLASSNAME, NULL, WS_CHILD|WS_VISIBLE, 0, 0, 0, 0, hwnd, (HMENU)IDC_MAIN_STATUS, GetModuleHandle(NULL), NULL); SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths); SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"http://www.ossec.net"); /* Initializing config */ config_read(hwnd); gen_server_info(hwnd); /* Setting the icons */ SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_OSSECICON))); SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_OSSECICON))); if(config_inst.admin_access == 0) { MessageBox(hwnd, "Admin access required. Some features may not work properly. /n/n" "**If on Vista (or Server 2008), choose the /"Run as administrator/" option.", "Admin Access Required", MB_OK); break; } } break; case WM_COMMAND: switch(LOWORD(wParam)) { /* In case of SAVE */ case IDC_ADD: { int chd = 0; int len; if(config_inst.admin_access == 0) { MessageBox(hwnd, "Unable to edit configuration. " "Admin access required.", "Error Saving.", MB_OK);//.........这里部分代码省略.........
开发者ID:Ar0xA,项目名称:ossec-hids,代码行数:101,
示例18: initvoid init(const char *title, unsigned char *imageData, unsigned int imageDataLen){ HWND hWnd; HINSTANCE hInstance = GetModuleHandle(NULL); // get thish shit into windows whide chars or whatever titleWide = (wchar_t*)calloc(strlen(title) + 1, sizeof(wchar_t)); mbstowcs(titleWide, title, strlen(title)); wcscpy((wchar_t*)szTitle, titleWide); wcscpy((wchar_t*)szWindowClass, (wchar_t*)TEXT("MyClass")); MyRegisterClass(hInstance); hWnd = InitInstance(hInstance, FALSE); // Don't show window if (!hWnd) { return; } // Let's load up the tray icon HICON hIcon; { // This is really hacky, but LoadImage won't let me load an image from memory. // So we have to write out a temporary file, load it from there, then delete the file. // From http://msdn.microsoft.com/en-us/library/windows/desktop/aa363875.aspx TCHAR szTempFileName[MAX_PATH+1]; TCHAR lpTempPathBuffer[MAX_PATH+1]; int dwRetVal = GetTempPath(MAX_PATH+1, // length of the buffer lpTempPathBuffer); // buffer for path if (dwRetVal > MAX_PATH+1 || (dwRetVal == 0)) { return; // Failure } // Generates a temporary file name. int uRetVal = GetTempFileName(lpTempPathBuffer, // directory for tmp files TEXT("_tmpicon"), // temp file name prefix 0, // create unique name szTempFileName); // buffer for name if (uRetVal == 0) { return; // Failure } // Dump the icon to the temp file FILE* fIcon = fopen(szTempFileName, "wb"); fwrite(imageData, 1, imageDataLen, fIcon); fclose(fIcon); fIcon = NULL; // Load the image from the file hIcon = LoadImage(NULL, szTempFileName, IMAGE_ICON, 64, 64, LR_LOADFROMFILE); // Delete the temp file remove(szTempFileName); } nid.cbSize = sizeof(NOTIFYICONDATA); nid.hWnd = hWnd; nid.uID = 100; nid.uCallbackMessage = WM_MYMESSAGE; nid.hIcon = hIcon; strcpy(nid.szTip, title); // MinGW seems to use ANSI nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; Shell_NotifyIcon(NIM_ADD, &nid); hSubMenu = CreatePopupMenu();}
开发者ID:henrylee2cn,项目名称:trayhost,代码行数:71,
示例19: CreatePopupMenuHRESULT STDMETHODCALLTYPE CSmtShell::QueryContextMenu(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags){ HMENU SubMenu = CreatePopupMenu(); memset(m_EnvPath, 0, sizeof(m_EnvPath)); if(!IsWorkEvn(m_szFile[0], m_EnvPath)){ if(FILE_ATTRIBUTE_DIRECTORY == GetFileAttributes(m_szFile[0])){ if(m_NumFiles <= 1){ InsertMenu(SubMenu, 0, MF_STRING | MF_BYPOSITION, idCmdFirst +101, _T("Set Environment")); InsertMenu(hmenu, indexMenu, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); InsertMenu(hmenu, indexMenu+1, MF_POPUP | MF_BYPOSITION, (UINT)SubMenu, _T("Smt Operate")); InsertMenu(hmenu, indexMenu+2, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); } } } else{ if(IsProductEnv()){ int i = 0; InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +103, _T("Update")); InsertMenu(hmenu, indexMenu, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); InsertMenu(hmenu, indexMenu+1, MF_POPUP | MF_BYPOSITION, (UINT)SubMenu, _T("Smt Operate")); InsertMenu(hmenu, indexMenu+2, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); } else{ if(!IsInCtr()){ int i = 0; if(!IsHaveEnvPath()){ if(m_FathAddFlag){ if(m_CouldAdd){ InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +107, _T("Add")); } else{ InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +108, _T("Revert")); } } else{ InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +102, _T("Check out")); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +103, _T("Update")); if(IsFatherInCtr()){ InsertMenu(SubMenu, i++, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +107, _T("Add")); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +108, _T("Revert")); } } //InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +110, _T("Import")); InsertMenu(hmenu, indexMenu, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); InsertMenu(hmenu, indexMenu+1, MF_POPUP | MF_BYPOSITION, (UINT)SubMenu, _T("Smt Operate")); InsertMenu(hmenu, indexMenu+2, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); } } else{ int i = 0; if(!IsHaveEnvPath()){ InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +104, _T("Commit")); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +105, _T("Check in")); InsertMenu(SubMenu, i++, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); if(!m_AddFlag){ InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +103, _T("Update")); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +106, _T("Cancel")); InsertMenu(SubMenu, i++, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +109, _T("Merge")); } InsertMenu(SubMenu, i++, MF_STRING | MF_BYPOSITION, idCmdFirst +108, _T("Revert")); InsertMenu(hmenu, indexMenu, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); InsertMenu(hmenu, indexMenu+1, MF_POPUP | MF_BYPOSITION, (UINT)SubMenu, _T("Smt Operate")); InsertMenu(hmenu, indexMenu+2, MF_SEPARATOR | MF_BYPOSITION, 0, NULL); } } } } return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(109 + 1));}
开发者ID:songcser,项目名称:ALM,代码行数:78,
示例20: user_create_menuHMENU user_create_menu(int mid, int flags){ HMENU m = CreatePopupMenu(), c; int i, count, sel_lng;# define addmenu(x, i, v) (InsertMenu(x, (UINT)-1, MF_BYPOSITION | MF_STRING, (i), (v)) )# define addmenu_chk(x, i, v) (InsertMenu(x, (UINT)-1, MF_BYPOSITION | MF_CHECKED | MF_STRING, (i), (v)) )# define menugroup(x) (InsertMenu(x, (UINT)-1, MF_BYPOSITION | MF_SEPARATOR, 0, 0) )# define addchild(x, h, v) (InsertMenu(x, (UINT)-1, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT_PTR)(h), (v)) )# define menubegin(x) (x = CreatePopupMenu())# define menuend(x) (DestroyMenu(x)) switch(mid) { case 1: { struct video_dec *vd; letter sub_name[128]; vdata.shared->call_function(call_video_getvdec, 0, &vd, 0); menubegin(c); addmenu(c, 1001, uni("(None)")); count = vd->video_decoder_trans_info(video_get_sub_language_count, 0, 0, 0); /* get primary language id */ sel_lng = vd->video_decoder_trans_info(video_get_sub_language_current, 0, 0, 0); for(i=0; i<count; i++) { vd->video_decoder_trans_info(video_get_sub_language_current, i, 0, sub_name); if(i != sel_lng) addmenu(c, 2000 + i, sub_name); else addmenu_chk(c, 2000 + i, sub_name); } addchild(m, c, uni("Primary")); menubegin(c); addmenu(c, 1002, uni("(None)")); /* get secondary language id */ sel_lng = vd->video_decoder_trans_info(video_get_sub_language_current, 1, 0, 0); for(i=0; i<count; i++) { vd->video_decoder_trans_info(video_get_sub_language_current, i, 0, sub_name); if(i != sel_lng) addmenu(c, 8000 + i, sub_name); else addmenu_chk(c, 8000 + i, sub_name); } addchild(m, c, uni("Secondary")); } break; } return m;}
开发者ID:hownam,项目名称:fennec,代码行数:69,
示例21: WinMainint WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ WNDCLASSEX wc; MSG Msg; //Step 1: Registering the Window Class wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = NULL; wc.lpszClassName = g_szClassName; wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); if(!RegisterClassEx(&wc)){ MessageBox(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } DWORD dwExStyle, dwStyle; dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; dwStyle=(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX); // Step 2: Creating the Window hwnd = CreateWindowEx( dwExStyle, g_szClassName, "Bes Language Editor", dwStyle, CW_USEDEFAULT, CW_USEDEFAULT, 600, 600, NULL, NULL, hInstance, NULL); if(hwnd == NULL){ MessageBox(NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } HICON hIcon, hIconSm; hMenu = CreateMenu(); hSubMenu = CreatePopupMenu(); AppendMenu(hSubMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING, ID_FILE_NEW, "&New/tCtrl + N"); AppendMenu(hSubMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING, ID_FILE_OPEN, "&Open/tCtrl + O"); AppendMenu(hSubMenu, MF_BYCOMMAND | MF_DISABLED | MF_STRING, ID_FILE_SAVE, "&Save/tCtrl + S"); AppendMenu(hSubMenu, MF_SEPARATOR, ID_FILE_SEPARATOR, ""); AppendMenu(hSubMenu, MF_BYCOMMAND | MF_DISABLED | MF_STRING, ID_FILE_CLOSE, "&Close/tCtrl + C"); AppendMenu(hSubMenu, MF_SEPARATOR, ID_FILE_SEPARATOR, ""); AppendMenu(hSubMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING, ID_FILE_EXIT, "E&xit/tCtrl + X"); AppendMenu(hMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING | MF_POPUP, (UINT)hSubMenu, "&File"); hSubMenu = CreatePopupMenu(); AppendMenu(hSubMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING, ID_STUFF_COMPILE, "&Compile/tCtrl + F9"); AppendMenu(hSubMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING, ID_STUFF_RUN, "&Run/tCtrl + F12"); AppendMenu(hMenu, MF_BYCOMMAND | MF_ENABLED | MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Execute"); SetMenu(hwnd, hMenu); hIcon = LoadImage(NULL, "BesLanguage.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE); if(hIcon) SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon); else MessageBox(hwnd, "Could not load large icon!", "Error", MB_OK | MB_ICONERROR); hIconSm = LoadImage(NULL, "BesLanguage.ico", IMAGE_ICON, 16, 16, LR_LOADFROMFILE); if(hIconSm) SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hIconSm); else MessageBox(hwnd, "Could not load small icon!", "Error", MB_OK | MB_ICONERROR); SetFocus(hwnd); ShowWindow(hwnd, SW_MAXIMIZE); UpdateWindow(hwnd); // Step 3: The Message Loop while(GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam;}
开发者ID:kurlp00,项目名称:beslanguage,代码行数:91,
示例22: InitLauncherMenu// Procedure de creation de menu à partir d'une clé de registreHMENU InitLauncherMenu( char * Key ) { HMENU menu ; menu = CreatePopupMenu() ; char KeyName[1024] ; int nbitem = 0,i ; DeleteObject( bmpCheck ) ; bmpCheck = GetMyCheckBitmaps( 1 ) ; DeleteObject( bmpUnCheck ) ; bmpUnCheck = GetMyCheckBitmaps( 2 ) ; if( (IniFileFlag == SAVEMODE_REG)||(IniFileFlag == SAVEMODE_FILE) ) { sprintf( KeyName, "%s//%s", TEXT(PUTTY_REG_POS), Key ) ; ReadSpecialMenu( menu, KeyName, &nbitem, 0 ) ; } else if( IniFileFlag == SAVEMODE_DIR ) { ReadSpecialMenu( menu, Key, &nbitem, 0 ) ; } if( GetMenuItemCount( menu ) > 0 ) AppendMenu( menu, MF_SEPARATOR, 0, 0 ) ; // Creation du menu bouton gauche DestroyMenu( HideMenu ) ; HideMenu = CreatePopupMenu() ; if( !IsUnique ) { AppendMenu( HideMenu, MF_ENABLED, IDM_LAUNCHER+3, "&Hide all" ) ; AppendMenu( HideMenu, MF_ENABLED, IDM_LAUNCHER+4, "&Unhide all" ) ; //AppendMenu( HideMenu, MF_ENABLED, IDM_LAUNCHER+5, "&Refresh list" ) ; AppendMenu( HideMenu, MF_ENABLED, IDM_LAUNCHER+6, "&Window unique" ) ; CheckMenuItem( HideMenu, IDM_LAUNCHER+6, MF_BYCOMMAND | MF_UNCHECKED) ; } else { AppendMenu( HideMenu, MF_ENABLED, IDM_LAUNCHER+6, "&Window unique" ) ; CheckMenuItem( HideMenu, IDM_LAUNCHER+6, MF_BYCOMMAND | MF_CHECKED) ; } //AppendMenu( HideMenu, MF_ENABLED, IDM_GONEXT, "&Next" ) ; //AppendMenu( HideMenu, MF_ENABLED, IDM_GOPREVIOUS, "&Previous" ) ; if( RefreshWinList( MainHwnd ) > 0 ) { AppendMenu( HideMenu, MF_SEPARATOR, 0, 0 ) ; for( i=0 ; i<NbWin ; i++ ) { AppendMenu( HideMenu, MF_ENABLED, IDM_GOHIDE+i, TabWin[i].name ) ; SetMenuItemBitmaps ( HideMenu, IDM_GOHIDE+i, MF_BYCOMMAND, bmpUnCheck, bmpCheck ) ; if( IsWindowVisible( TabWin[i].hwnd ) ) CheckMenuItem( HideMenu, IDM_GOHIDE+i, MF_BYCOMMAND | MF_CHECKED) ; else CheckMenuItem( HideMenu, IDM_GOHIDE+i, MF_BYCOMMAND | MF_UNCHECKED) ; } } AppendMenu( HideMenu, MF_SEPARATOR, 0, 0 ) ; AppendMenu( HideMenu, MF_ENABLED, IDM_ABOUT, "&About" ) ; AppendMenu( HideMenu, MF_ENABLED, IDM_QUIT, "&Quit" ) ; AppendMenu( menu, MF_POPUP, (UINT_PTR)HideMenu, "&Opened sessions" ) ; AppendMenu( menu, MF_SEPARATOR, 0, 0 ) ; AppendMenu( menu, MF_ENABLED, IDM_LAUNCHER+7, "&Refresh" ) ; AppendMenu( menu, MF_ENABLED, IDM_LAUNCHER+1, "&Configuration" ) ; AppendMenu( menu, MF_ENABLED, IDM_LAUNCHER+2, "&TTY-ed" ) ; AppendMenu( menu, MF_SEPARATOR, 0, 0 ) ; AppendMenu( menu, MF_ENABLED, IDM_ABOUT, "&About" ) ; AppendMenu( menu, MF_ENABLED, IDM_QUIT, "&Quit" ) ; return menu ; }
开发者ID:niieani,项目名称:kitty-remix,代码行数:65,
示例23: WndProcLRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; RECT rcClient; // The parent window's client area. static HMENU hMainMenu, hFileMenu; static HWND hSearchButton; int i; OPENFILENAME ofn; TCHAR szFileName[256] = ""; static struct { TCHAR *name; int width; } columns[] = { { TEXT("Номер телефона:"), 100}, { TEXT("Фамилия:"), 100}, { TEXT("Имя:"), 100}, { TEXT("Отчество:"), 100}, { TEXT("Улица:"), 150}, { TEXT("Дом:"), 100}, { TEXT("Корпус:"), 100}, { TEXT("Квартира:"), 100} }; const int ColumnsCount = _countof(columns); switch (message) { case WM_CREATE: LoadDatabaseDLL(); hMainMenu=CreateMenu(); hFileMenu=CreatePopupMenu(); i=0; CreateMenuItem(hFileMenu,"&Load database",i++,ID_BUTTONLOADDB,NULL,FALSE,MFT_STRING); CreateMenuItem(hFileMenu,"&Show database",i++,ID_BUTTONSHOWDB,NULL,FALSE,MFT_STRING); CreateMenuItem(hFileMenu,"&Exit",i++,IDM_EXIT,NULL,FALSE,MFT_STRING); i=0; CreateMenuItem(hMainMenu,"&File",i++,0,hFileMenu,FALSE,MFT_STRING); SetMenu(hWnd,hMainMenu); DrawMenuBar(hWnd); GetClientRect (hWnd, &rcClient); hListView = CreateWindowEx( WS_EX_STATICEDGE, WC_LISTVIEW, NULL, WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_EDITLABELS, 0, 0, rcClient.right, rcClient.bottom-100, hWnd, NULL, hInst, NULL); ListView_SetExtendedListViewStyle(hListView,LVS_EX_FULLROWSELECT); //adding columns for (int i=0; i<ColumnsCount; i++) { AddColumnToListView(hListView, columns[i].name, i, columns[i].width); } hPhoneLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 5, 400, 65, 25, hWnd, hMainMenu, hInst, NULL); SendMessage(hPhoneLabel, WM_SETTEXT, NULL, (LPARAM) "Телефон:"); hLastNameLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 90, 400, 100, 25, hWnd, hMainMenu, hInst, NULL); SendMessage(hLastNameLabel, WM_SETTEXT, NULL, (LPARAM) "Фамилия:"); hNameLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 190, 400, 100, 25, hWnd, hMainMenu, hInst, NULL); SendMessage(hNameLabel, WM_SETTEXT, NULL, (LPARAM) "Имя:"); hPatronymLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 290, 400, 100, 25, hWnd, hMainMenu, hInst, NULL); SendMessage(hPatronymLabel, WM_SETTEXT, NULL, (LPARAM) "Отчество:"); hStreetLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 390, 400, 150, 25, hWnd, hMainMenu, hInst, NULL); SendMessage(hStreetLabel, WM_SETTEXT, NULL, (LPARAM) "Улица"); hHouseLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 540, 400, 50, 25, hWnd, hMainMenu, hInst, NULL); SendMessage(hHouseLabel, WM_SETTEXT, NULL, (LPARAM) "Дом"); hHousingLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 590, 400, 60, 25, hWnd, hMainMenu, hInst, NULL); SendMessage(hHousingLabel, WM_SETTEXT, NULL, (LPARAM)"Корпус:"); hApartmentLabel = CreateWindowEx( WS_EX_TRANSPARENT, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT | WS_SYSMENU , 650, 400, 30, 25, hWnd, hMainMenu, hInst, NULL); SendMessage(hApartmentLabel, WM_SETTEXT, NULL, (LPARAM) "кв:"); hPhoneEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT, 3, 425, 83, 25, hWnd, (HMENU)(101), hInst, NULL); hLastNameEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT, 90, 425, 98, 25, hWnd, (HMENU)(101), hInst, NULL); hNameEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT, 190, 425, 98, 25, hWnd, (HMENU)(101), hInst, NULL); hPatronymEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT, 290, 425, 98, 25, hWnd, (HMENU)(101), hInst, NULL); hStreetEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT, 390, 425, 148, 25, hWnd, (HMENU)(101), hInst, NULL); hHouseEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT, 540, 425, 98, 25, hWnd, (HMENU)(101), hInst, NULL); hHousingEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT, 590, 425, 58, 25, hWnd, (HMENU)(101), hInst, NULL); hApartmentEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT, 650, 425, 28, 25, hWnd, (HMENU)(101), hInst, NULL); hSearchButton = CreateWindowEx( WS_EX_STATICEDGE, WC_BUTTON, NULL, WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_EDITLABELS, 690, 425, 50, 25, hWnd, NULL, hInst, NULL); SendMessage(hSearchButton, WM_SETTEXT, NULL, (LPARAM) "Поиск"); ShowWindow(hWnd, NULL); UpdateWindow(hWnd); break; case WM_COMMAND://.........这里部分代码省略.........
开发者ID:ItramariN,项目名称:lab,代码行数:101,
示例24: TaskManager_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,
示例25: disasmbasewin_infoconsolewin_info::consolewin_info(debugger_windows_interface &debugger) : disasmbasewin_info(debugger, true, "Debug", nullptr), m_devices_menu(nullptr){ if ((window() == nullptr) || (m_views[0] == nullptr)) goto cleanup; // create the views m_views[1].reset(global_alloc(debugview_info(debugger, *this, window(), DVT_STATE))); if (!m_views[1]->is_valid()) goto cleanup; m_views[2].reset(global_alloc(debugview_info(debugger, *this, window(), DVT_CONSOLE))); if (!m_views[2]->is_valid()) goto cleanup; { // Add image menu only if image devices exist image_interface_iterator iter(machine().root_device()); if (iter.first() != nullptr) { m_devices_menu = CreatePopupMenu(); for (device_image_interface &img : iter) { osd::text::tstring tc_buf = osd::text::to_tstring(string_format("%s : %s", img.device().name(), img.exists() ? img.filename() : "[no image]")); AppendMenu(m_devices_menu, MF_ENABLED, 0, tc_buf.c_str()); } AppendMenu(GetMenu(window()), MF_ENABLED | MF_POPUP, (UINT_PTR)m_devices_menu, TEXT("Images")); } // get the work bounds RECT work_bounds, bounds; SystemParametersInfo(SPI_GETWORKAREA, 0, &work_bounds, 0); // adjust the min/max sizes for the window style bounds.top = bounds.left = 0; bounds.right = bounds.bottom = EDGE_WIDTH + m_views[1]->maxwidth() + (2 * EDGE_WIDTH) + 100 + EDGE_WIDTH; AdjustWindowRectEx(&bounds, DEBUG_WINDOW_STYLE, FALSE, DEBUG_WINDOW_STYLE_EX); set_minwidth(bounds.right - bounds.left); bounds.top = bounds.left = 0; bounds.right = bounds.bottom = EDGE_WIDTH + m_views[1]->maxwidth() + (2 * EDGE_WIDTH) + std::max(m_views[0]->maxwidth(), m_views[2]->maxwidth()) + EDGE_WIDTH; AdjustWindowRectEx(&bounds, DEBUG_WINDOW_STYLE, FALSE, DEBUG_WINDOW_STYLE_EX); set_maxwidth(bounds.right - bounds.left); // position the window at the bottom-right int const bestwidth = (std::min<uint32_t>)(maxwidth(), work_bounds.right - work_bounds.left); int const bestheight = (std::min<uint32_t>)(500, work_bounds.bottom - work_bounds.top); SetWindowPos(window(), HWND_TOP, work_bounds.right - bestwidth, work_bounds.bottom - bestheight, bestwidth, bestheight, SWP_SHOWWINDOW); } // recompute the children set_cpu(*machine().debugger().cpu().get_visible_cpu()); // mark the edit box as the default focus and set it editwin_info::set_default_focus(); return;cleanup: m_views[2].reset(); m_views[1].reset(); m_views[0].reset();}
开发者ID:goofwear,项目名称:mame,代码行数:65,
示例26: GetMessagePosvoid CManageBookmarksDialog::OnListViewHeaderRClick(){ DWORD dwCursorPos = GetMessagePos(); POINT ptCursor; ptCursor.x = GET_X_LPARAM(dwCursorPos); ptCursor.y = GET_Y_LPARAM(dwCursorPos); HMENU hMenu = CreatePopupMenu(); int iItem = 0; for each(auto ci in m_pmbdps->m_vectorColumnInfo) { TCHAR szColumn[128]; GetColumnString(ci.ColumnType,szColumn,SIZEOF_ARRAY(szColumn)); MENUITEMINFO mii; mii.cbSize = sizeof(mii); mii.fMask = MIIM_ID|MIIM_STRING|MIIM_STATE; mii.wID = ci.ColumnType; mii.dwTypeData = szColumn; mii.fState = 0; if(ci.bActive) { mii.fState |= MFS_CHECKED; } /* The name column cannot be removed. */ if(ci.ColumnType == CManageBookmarksDialogPersistentSettings::COLUMN_TYPE_NAME) { mii.fState |= MFS_DISABLED; } InsertMenuItem(hMenu,iItem,TRUE,&mii); ++iItem; } int iCmd = TrackPopupMenu(hMenu,TPM_LEFTALIGN|TPM_RETURNCMD,ptCursor.x,ptCursor.y,0,m_hDlg,NULL); DestroyMenu(hMenu); int iColumn = 0; for(auto itr = m_pmbdps->m_vectorColumnInfo.begin();itr != m_pmbdps->m_vectorColumnInfo.end();++itr) { if(itr->ColumnType == iCmd) { HWND hListView = GetDlgItem(m_hDlg,IDC_MANAGEBOOKMARKS_LISTVIEW); if(itr->bActive) { itr->iWidth = ListView_GetColumnWidth(hListView,iColumn); ListView_DeleteColumn(hListView,iColumn); } else { LVCOLUMN lvCol; TCHAR szTemp[128]; GetColumnString(itr->ColumnType,szTemp,SIZEOF_ARRAY(szTemp)); lvCol.mask = LVCF_TEXT|LVCF_WIDTH; lvCol.pszText = szTemp; lvCol.cx = itr->iWidth; ListView_InsertColumn(hListView,iColumn,&lvCol); HWND hTreeView = GetDlgItem(m_hDlg,IDC_MANAGEBOOKMARKS_TREEVIEW); HTREEITEM hSelected = TreeView_GetSelection(hTreeView); CBookmarkFolder &BookmarkFolder = m_pBookmarkTreeView->GetBookmarkFolderFromTreeView(hSelected); int inneriItem = 0; for(auto itrBookmarks = BookmarkFolder.begin();itrBookmarks != BookmarkFolder.end();++itrBookmarks) { TCHAR szColumn[256]; GetBookmarkItemColumnInfo(*itrBookmarks,itr->ColumnType,szColumn,SIZEOF_ARRAY(szColumn)); ListView_SetItemText(hListView,inneriItem,iColumn,szColumn); ++inneriItem; } } itr->bActive = !itr->bActive; break; } else { if(itr->bActive) { ++iColumn; } } }}
开发者ID:defhook,项目名称:explorerplusplus,代码行数:95,
示例27: WindowProcstatic LRESULT CALLBACK WindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { static SERVICE_TABLE_ENTRY service_table[] = { {server_name, (LPSERVICE_MAIN_FUNCTION) ServiceMain}, {NULL, NULL} }; int service_installed; char buf[200], *service_argv[] = {__argv[0], NULL}; POINT pt; HMENU hMenu; switch (msg) { case WM_CREATE: if (__argv[1] != NULL && !strcmp(__argv[1], service_magic_argument)) { start_mongoose(1, service_argv); StartServiceCtrlDispatcher(service_table); exit(EXIT_SUCCESS); } else { start_mongoose(__argc, __argv); } break; case WM_COMMAND: switch (LOWORD(wParam)) { case ID_QUIT: mg_stop(ctx); Shell_NotifyIcon(NIM_DELETE, &TrayIcon); PostQuitMessage(0); break; case ID_EDIT_CONFIG: edit_config_file(); break; case ID_INSTALL_SERVICE: case ID_REMOVE_SERVICE: manage_service(LOWORD(wParam)); break; } break; case WM_USER: switch (lParam) { case WM_RBUTTONUP: case WM_LBUTTONUP: case WM_LBUTTONDBLCLK: hMenu = CreatePopupMenu(); AppendMenu(hMenu, MF_STRING | MF_GRAYED, ID_SEPARATOR, server_name); AppendMenu(hMenu, MF_SEPARATOR, ID_SEPARATOR, ""); service_installed = manage_service(0); snprintf(buf, sizeof(buf), "NT service: %s installed", service_installed ? "" : "not"); AppendMenu(hMenu, MF_STRING | MF_GRAYED, ID_SEPARATOR, buf); AppendMenu(hMenu, MF_STRING | (service_installed ? MF_GRAYED : 0), ID_INSTALL_SERVICE, "Install"); AppendMenu(hMenu, MF_STRING | (!service_installed ? MF_GRAYED : 0), ID_REMOVE_SERVICE, "Deinstall"); AppendMenu(hMenu, MF_SEPARATOR, ID_SEPARATOR, ""); AppendMenu(hMenu, MF_STRING, ID_EDIT_CONFIG, "Edit config file"); AppendMenu(hMenu, MF_STRING, ID_QUIT, "Exit"); GetCursorPos(&pt); SetForegroundWindow(hWnd); TrackPopupMenu(hMenu, 0, pt.x, pt.y, 0, hWnd, NULL); PostMessage(hWnd, WM_NULL, 0, 0); DestroyMenu(hMenu); break; } break; } return DefWindowProc(hWnd, msg, wParam, lParam);}
开发者ID:UserNumberTwo,项目名称:SnapSVG-Animator,代码行数:69,
示例28: DialogBoxSubclassProc//.........这里部分代码省略......... break; } SendMessage(hwndHelpDlg, M_CHANGEHELPCONTROL, 0, (LPARAM)hwndDlg); return 0; } break; case WM_CONTEXTMENU: { POINT pt; struct FindChildAtPointData fcap; // workaround for badly coded plugins that do display a context menu // and pass the message to DefWindowProc afterwards (doing a "break;"). if (GetTickCount() - GetMessageTime()>10) return 0; if (idMouseMoveTimer) KillTimer(NULL, idMouseMoveTimer); idMouseMoveTimer = 0; ZeroMemory(&fcap, sizeof(fcap)); POINTSTOPOINT(pt, MAKEPOINTS(lParam)); // ChildWindowFromPoint() messes up with group boxes fcap.hwnd = NULL; fcap.pt = pt; EnumChildWindows(hwndDlg, FindChildAtPointEnumProc, (LPARAM)&fcap); HWND hwndCtl = fcap.hwnd; if (hwndCtl == NULL) { ScreenToClient(hwndDlg, &pt); hwndCtl = ChildWindowFromPointEx(hwndDlg, pt, CWP_SKIPINVISIBLE); if (hwndCtl == NULL) break; POINTSTOPOINT(pt, MAKEPOINTS(lParam)); } { LONG_PTR flags = (LONG_PTR)GetProp(hwndCtl, PROP_CONTEXTSTATE); if (flags&PROPF_MENUDISABLED) break; else if (!(flags&PROPF_MENUFORCED)) { int type = GetControlType(hwndCtl); // showing a context menu on these looks silly (multi components) if (type == CTLTYPE_TOOLBAR || type == CTLTYPE_LISTVIEW || type == CTLTYPE_TREEVIEW || type == CTLTYPE_STATUSBAR || type == CTLTYPE_CLC) break; } } if (IsRealChild(hwndDlg, hwndCtl)) { HMENU hMenu = CreatePopupMenu(); AppendMenu(hMenu, MF_STRING, SC_CONTEXTHELP, (hwndCtl == hwndDlg) ? TranslateT("&What's this dialog?") : TranslateT("&What's this?")); if (TrackPopupMenuEx(hMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_HORPOSANIMATION | TPM_VERPOSANIMATION | TPM_RIGHTBUTTON | TPM_RETURNCMD | TPM_NONOTIFY, pt.x, pt.y, hwndDlg, NULL)) { if (hwndHelpDlg == NULL) { hwndHelpDlg = CreateDialog(hInst, MAKEINTRESOURCE(IDD_HELP), NULL, HelpDlgProc); if (hwndHelpDlg == NULL) { DestroyMenu(hMenu); break; } } SendMessage(hwndHelpDlg, M_CHANGEHELPCONTROL, 0, (LPARAM)hwndCtl); } DestroyMenu(hMenu); } return 0; } case WM_HELP: { HELPINFO *hi = (HELPINFO*)lParam; if (hi->iContextType != HELPINFO_WINDOW) break; // fix for SHBrowseForFolder() dialog, which sends unhandled help to parent if (!IsRealChild(hwndDlg, (HWND)hi->hItemHandle)) break; if (idMouseMoveTimer) KillTimer(NULL, idMouseMoveTimer); idMouseMoveTimer = 0; if (!IsWindow(hwndHelpDlg)) { hwndHelpDlg = CreateDialog(hInst, MAKEINTRESOURCE(IDD_HELP), NULL, HelpDlgProc); if (hwndHelpDlg == NULL) break; } SendMessage(hwndHelpDlg, M_CHANGEHELPCONTROL, 0, (LPARAM)hi->hItemHandle); // we need to eat the next WM_LBUTTONDOWN (if invoked by mouse) if (GetKeyState(GetSystemMetrics(SM_SWAPBUTTON) ? VK_RBUTTON : VK_LBUTTON) & 0x8000 && hEatNextMouseHook == NULL) hEatNextMouseHook = SetWindowsHookEx(WH_MOUSE, EatNextMouseButtonUpHookProc, NULL, GetCurrentThreadId()); return TRUE; } case WM_NCDESTROY: if (idMouseMoveTimer) KillTimer(NULL, idMouseMoveTimer); idMouseMoveTimer = 0; EnumChildWindows(hwndDlg, RemovePropForAllChildsEnumProc, (LPARAM)PROP_CONTEXTSTATE); { TCHAR text[64]; mir_sntprintf(text, _countof(text), _T("unhooked window 0x%X for context help/n"), hwndDlg); OutputDebugString(text); } SetWindowLongPtr(hwndDlg, GWLP_WNDPROC, (LONG_PTR)pfnWndProc); break; } return CallWindowProc(pfnWndProc, hwndDlg, msg, wParam, lParam);}
开发者ID:wyrover,项目名称:miranda-ng,代码行数:101,
示例29: gtk_accel_group_newvoid Menu::create(Window *wnd,uint32_t st) { int i,n; char str[257];#ifdef USE_WIN32 char buf[5];#ifdef USE_WCHAR wchar_t wstr[257];#endif#endif MenuItem *m;#ifdef USE_GTK GtkAccelGroup *accel_group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW((GtkWindow *)((Window *)parent)->wnd),accel_group); component = (Component)gtk_menu_bar_new();#endif#ifdef USE_WIN32 component = (Component)CreateMenu();#endif window = wnd; for(i=0,m=items; m && i<nitems; ++i) {*str = '/0';for(n=0; n<m->lvl; ++n) strcat(str,"--> ");strcat(str,m->name);debug_output("Menu::create(menu: index=%d,id='%d',parent='%d',child='%d',menuitem='%s')/n",m->index,m->id,m->parent? m->parent->id : -1,m->child? m->child->id : -1,str);#ifdef USE_GTK if(m->id==-1) { if(m->parent) { m->item = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL((GtkWidget *)m->parent->submenu),m->item); } } else { m->item = gtk_image_menu_item_new_with_label(m->name); if(m->icon) gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m->item),GTK_WIDGET(gtk_image_new_from_stock(m->icon,GTK_ICON_SIZE_MENU))); if(!m->sensitive) gtk_widget_set_sensitive(m->item,false); if(m->acc!=-1) { gtk_image_menu_item_set_accel_group(GTK_IMAGE_MENU_ITEM(m->item),accel_group); gtk_widget_add_accelerator(m->item,"activate",accel_group,m->acc,(GdkModifierType)m->acc_mod,GTK_ACCEL_VISIBLE); } if(m->child) { m->submenu = (Component)gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(m->item),m->submenu); } if(m->parent) { gtk_menu_shell_append(GTK_MENU_SHELL(m->parent->submenu),m->item); if(!m->child) {debug_output("Menu::create(g_signal_connect: %s - %p)/n",m->name,m); if(event_handler) g_signal_connect(G_OBJECT(m->item),"activate",G_CALLBACK(menuitem_callback),(gpointer)m); } } else { gtk_menu_shell_append(GTK_MENU_SHELL((GtkWidget *)component),m->item); } }#endif#ifdef USE_WIN32 if(m->id==-1) { if(m->parent) AppendMenu((HMENU)m->parent->submenu,MF_SEPARATOR,0,0); } else { strcpy(str,m->name); if(m->acc!=-1) { strcat(str,"/t"); if((m->acc_mod&KEY_CONTROL)) strcat(str,"Ctrl-"); if((m->acc_mod&KEY_ALT)) strcat(str,"Alt-"); if((m->acc_mod&KEY_SHIFT)) strcat(str,"Shift-"); if(m->acc>=KEY_a && m->acc<=KEY_z) sprintf(buf,"%c",m->acc); else if(m->acc>=KEY_F1 && m->acc<=KEY_F12) sprintf(buf,"F%d",m->acc+1-KEY_F1); strcat(str,buf); } if(m->child) { m->submenu = (Component)CreatePopupMenu();#ifdef USE_WCHAR char2w(wstr,str,256);debug_output("Menu::create(m: %p, wstr: %ls)/n",m,wstr); AppendMenu((HMENU)(m->parent? m->parent->submenu : component),MF_STRING|MF_POPUP,(UINT)m->submenu,wstr);#else AppendMenu((HMENU)(m->parent? m->parent->submenu : component),MF_STRING|MF_POPUP,(UINT)m->submenu,str);#endif } else if(m->parent) {#ifdef USE_WCHAR char2w(wstr,str,256);debug_output("Menu::create(m: %p, parent: %p, submenu: %p, wstr: %ls)/n",m,m->parent,m->parent? m->parent->submenu : 0,wstr); AppendMenu((HMENU)m->parent->submenu,MF_STRING,WIDGET_MAKE_ID(WIDGET_MENU,m->index),wstr);#else AppendMenu((HMENU)m->parent->submenu,MF_STRING,WIDGET_MAKE_ID(WIDGET_MENU,m->index),str);#endif }// if(!m->sensitive) gtk_widget_set_sensitive(m->item,false);// if(m->acc!=-1) {// gtk_image_menu_item_set_accel_group(GTK_IMAGE_MENU_ITEM(m->item),accel_group);// gtk_widget_add_accelerator(m->item,"activate",accel_group,m->acc,(GdkModifierType)m->acc_mod,GTK_ACCEL_VISIBLE);// } }#endif//.........这里部分代码省略.........
开发者ID:NikitaSharma28,项目名称:libamanita,代码行数:101,
示例30: mswin_tw_wm_contextmenu/* * mswin_tw_wm_command() - WM_CONTEXTMENU handler for textwindows */static voidmswin_tw_wm_contextmenu(MSWIN_TEXTWINDOW *mswin_tw, HWND hwnd, HWND hwndContext, int xPos, int yPos){ HMENU hMenu; hMenu = CreatePopupMenu(); if(hMenu) { int i; CHARRANGE cr; MENUITEMINFO mitem; static const struct { UINT wID; LPTSTR dwTypeData; } s_popup_menu[] = { { IDM_EDIT_COPY, TEXT("&Copy") }, { IDM_EDIT_COPY_APPEND, TEXT("Copy &Append") }, { IDM_EDIT_CLEAR, TEXT("Clea&r") }, }; memset(&mitem, 0, sizeof(MENUITEMINFO)); mitem.cbSize = sizeof(MENUITEMINFO); mitem.fMask = MIIM_TYPE | MIIM_ID | MIIM_STATE; mitem.fType = MFT_STRING; SendMessage(mswin_tw->hwnd_edit, EM_EXGETSEL, (WPARAM)0, (LPARAM)&cr); for(i = 0; i < ARRAYSIZE(s_popup_menu); i++) { switch(s_popup_menu[i].wID) { case IDM_EDIT_CLEAR: // Only enable it if there is a clear callback set. mitem.fState = (mswin_tw->clear_callback) ? MFS_ENABLED : MFS_GRAYED; break; case IDM_EDIT_COPY: case IDM_EDIT_COPY_APPEND: // Only enable if there is a selection. mitem.fState = (cr.cpMax > cr.cpMin) ? MFS_ENABLED : MFS_GRAYED; break; default: mitem.fState = MFS_ENABLED; break; } mitem.wID = s_popup_menu[i].wID; mitem.dwTypeData = s_popup_menu[i].dwTypeData; mitem.cch = (UINT)_tcslen(s_popup_menu[i].dwTypeData); InsertMenuItem(hMenu, i, FALSE, &mitem); } TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON | TPM_LEFTBUTTON, xPos, yPos, 0, hwnd, NULL); DestroyMenu(hMenu); }}
开发者ID:carriercomm,项目名称:alpine,代码行数:67,
注:本文中的CreatePopupMenu函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ CreateProcessA函数代码示例 C++ CreatePin函数代码示例 |