本文整理汇总了C++中GetSubMenu函数的典型用法代码示例。如果您正苦于以下问题:C++ GetSubMenu函数的具体用法?C++ GetSubMenu怎么用?C++ GetSubMenu使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetSubMenu函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: DlgProcText
INT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
RECT rc, pos;
HWND button;
HMENU hMenu, hMenu1;
TCHAR str[4096];
switch (msg) {
case WM_INITDIALOG:
opt_startup = TRUE;
// set windows position, make it top-most
GetWindowRect(hdlg, &rc);
SetWindowPos(hdlg, HWND_TOPMOST, rc.left, rc.top, 0, 0, SWP_NOSIZE);
TranslateDialogDefault(hdlg);
// generate the display text for variable list
_tcsncpy(str, VAR_LIST_OPT, _countof(str) - 1);
SetDlgItemText(hdlg, IDC_VARLIST, str);
// make the more variable and other buttons flat
SendDlgItemMessage(hdlg, IDC_MORE, BUTTONSETASFLATBTN, TRUE, 0);
SendDlgItemMessage(hdlg, IDC_TM1, BUTTONSETASFLATBTN, TRUE, 0);
SendDlgItemMessage(hdlg, IDC_TM2, BUTTONSETASFLATBTN, TRUE, 0);
SendDlgItemMessage(hdlg, IDC_TM3, BUTTONSETASFLATBTN, TRUE, 0);
SendDlgItemMessage(hdlg, IDC_TM4, BUTTONSETASFLATBTN, TRUE, 0);
SendDlgItemMessage(hdlg, IDC_TM5, BUTTONSETASFLATBTN, TRUE, 0);
SendDlgItemMessage(hdlg, IDC_TM6, BUTTONSETASFLATBTN, TRUE, 0);
SendDlgItemMessage(hdlg, IDC_TM7, BUTTONSETASFLATBTN, TRUE, 0);
SendDlgItemMessage(hdlg, IDC_TM8, BUTTONSETASFLATBTN, TRUE, 0);
SendDlgItemMessage(hdlg, IDC_RESET, BUTTONSETASFLATBTN, TRUE, 0);
// load the settings
LoadTextSettings(hdlg);
opt_startup = FALSE;
return TRUE;
case WM_COMMAND:
if (opt_startup) return TRUE;
switch (LOWORD(wParam)) {
case IDC_CTEXT:
case IDC_BTITLE:
case IDC_BTEXT:
case IDC_NTEXT:
case IDC_XTEXT:
case IDC_ETEXT:
case IDC_HTEXT:
case IDC_BTITLE2:
if (HIWORD(wParam) == EN_CHANGE)
SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
break;
case IDC_MORE:
// display custom variables list
MoreVarList();
break;
case IDC_TM1:
case IDC_TM2:
case IDC_TM3:
case IDC_TM4:
case IDC_TM5:
case IDC_TM6:
case IDC_TM7:
case IDC_TM8:
// display the menu
button = GetDlgItem(hdlg, LOWORD(wParam));
GetWindowRect(button, &pos);
hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_TMMENU));
hMenu1 = GetSubMenu(hMenu, 0);
TranslateMenu(hMenu1);
switch (TrackPopupMenu(hMenu1, TPM_LEFTBUTTON | TPM_RETURNCMD, pos.left, pos.bottom, 0, hdlg, NULL)) {
case ID_MPREVIEW:
{
// show the preview in a message box, using the weather data from the default station
WEATHERINFO winfo = LoadWeatherInfo(opt.DefStn);
GetDisplay(&winfo, *var[LOWORD(wParam) - IDC_TM1], str);
MessageBox(NULL, str, TranslateT("Weather Protocol Text Preview"), MB_OK | MB_TOPMOST);
break;
}
case ID_MRESET:
unsigned varo = LOWORD(wParam) - IDC_TM1;
// remove the old setting from db and free memory
TCHAR* vartmp = *var[varo];
wfree(&vartmp);
SetTextDefault(varname[varo]);
SetDlgItemText(hdlg, cname[varo], *var[varo]);
break;
}
DestroyMenu(hMenu);
break;
case IDC_RESET:
// left click action selection menu
button = GetDlgItem(hdlg, IDC_RESET);
GetWindowRect(button, &pos);
hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_TMENU));
hMenu1 = GetSubMenu(hMenu, 0);
TranslateMenu(hMenu1);
switch (TrackPopupMenu(hMenu1, TPM_LEFTBUTTON | TPM_RETURNCMD, pos.left, pos.bottom, 0, hdlg, NULL)) {
case ID_T1:
// reset to the strings in memory, discard all changes
LoadTextSettings(hdlg);
break;
//.........这里部分代码省略.........
开发者ID:Seldom,项目名称:miranda-ng,代码行数:101,代码来源:weather_opt.cpp
示例2: FileDlgProc
//.........这里部分代码省略.........
break;
case WM_NOTIFY:
{
lPnmhdr = (LPNMHDR)lParam;
hList = GetDlgItem(hDlg,IDC_LIST1);
if (lPnmhdr->hwndFrom==hList)
{
switch (lPnmhdr->code)
{
case NM_DBLCLK:
{
hList = GetDlgItem(hDlg,IDC_LIST1);
int index = ListView_GetSelectionMark(hList);
int count = ListView_GetItemCount(hList);
char szType[10] = {0};
ListView_GetItemText(hList,index,0,szType,sizeof(szType));
if (strcmp(szType,"FILE")==0)
{
break;
}
if (index<count)
{
char szFile[NAMESIZE] = {0};
char szType[10] = {0};
ListView_GetItemText(hList,index,0,szType,sizeof(szType));
ListView_GetItemText(hList,index,1,szFile,NAMESIZE);
FileOpen(sockfd,szFile,szType);
}
}
break;
case NM_RCLICK:
{
HMENU hMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDR_MENU1));
hMenu = GetSubMenu(hMenu,0);
POINT stPos;
GetCursorPos(&stPos);
TrackPopupMenu(hMenu,TPM_LEFTALIGN,stPos.x,stPos.y,NULL,hDlg,NULL);
}
break;
}
}
}
break;
case WM_INITMENUPOPUP:
{
switch(LOWORD(lParam))
{
case 0:
{
//文件禁用:打开(EXE不禁用)
//文件夹禁用:下载
//盘符禁用:返回
hList = GetDlgItem(hDlg,IDC_LIST1);
int index = ListView_GetSelectionMark(hList);
int count = ListView_GetItemCount(hList);
if (index>=count && strlen(szTempPath)==0)
{
EnableMenuItem((HMENU)wParam,ID_POPUP_40001,MF_GRAYED);
EnableMenuItem((HMENU)wParam,ID_POPUP_40002,MF_GRAYED);
EnableMenuItem((HMENU)wParam,ID_POPUP_40004,MF_GRAYED);
EnableMenuItem((HMENU)wParam,ID_POPUP_40005,MF_GRAYED);
}
else if (index>=count)
{
EnableMenuItem((HMENU)wParam,ID_POPUP_40001,MF_GRAYED);
EnableMenuItem((HMENU)wParam,ID_POPUP_40002,MF_ENABLED);
开发者ID:drupalhunter,项目名称:HackCollect,代码行数:67,代码来源:NsDoor.cpp
示例3: MenuDrawProc
//.........这里部分代码省略.........
break;
// case WM_LBUTTONUP:
case WM_MBUTTONUP:
case WM_MBUTTONDOWN:
case WM_RBUTTONDBLCLK:
case WM_MBUTTONDBLCLK:
case WM_RBUTTONUP:
SetFocus(hwnd);
return 1;
case WM_PAINT:
menuData = (struct resRes *)GetWindowLong(hwnd, 0);
GetClientRect(hwnd, &r);
dc = BeginPaint(hwnd, &paint);
DoPaint(hwnd, dc, &paint, &r, menuData);
EndPaint(hwnd, &paint);
break;
case WM_RBUTTONDOWN:
menuData = (struct resRes *)GetWindowLong(hwnd, 0);
SendMessage(hwnd, WM_COMMAND, ID_EDIT + (EN_KILLFOCUS << 16), 0);
mouse.x = LOWORD(lParam);
mouse.y = HIWORD(lParam);
i = menuHitTest(hwnd, menuData, mouse);
if (i)
{
HMENU menu, popup;
SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(ID_EDIT, CBN_KILLFOCUS), 0);
menu = LoadMenuGeneric(hInstance, "RESMENUMENU");
if (i & 2)
EnableMenuItem(menu, IDM_DELETE, MF_BYCOMMAND | MF_GRAYED);
if (i & 4)
EnableMenuItem(menu, IDM_INSERT_SEPARATOR, MF_BYCOMMAND | MF_GRAYED);
menuData->gd.selectedRow = mouse.y + menuData->gd.scrollPos.y;
menuData->gd.selectedColumn = mouse.x + menuData->gd.scrollPos.x;
popup = GetSubMenu(menu, 0);
ClientToScreen(hwnd, &mouse);
InsertBitmapsInMenu(popup);
TrackPopupMenuEx(popup, TPM_TOPALIGN | TPM_LEFTALIGN | TPM_LEFTBUTTON, mouse.x,
mouse.y, hwnd, NULL);
DestroyMenu(menu);
}
return 1;
case WM_LBUTTONDBLCLK:
SendMessage(hwnd, WM_COMMAND, ID_EDIT + (EN_KILLFOCUS << 16), 0);
SetFocus(hwnd);
menuData = (struct resRes *)GetWindowLong(hwnd, 0);
mouse.x = LOWORD(lParam);
mouse.y = HIWORD(lParam);
SelectSubmenu(hwnd, menuData, mouse, TRUE);
break;
case WM_MOUSEMOVE:
if (dragging)
{
menuData = (struct resRes *)GetWindowLong(hwnd, 0);
mouse.x = LOWORD(lParam);
mouse.y = HIWORD(lParam);
menuData->gd.selectedMenu = start;
i = menuHitTest(hwnd, menuData, mouse);
if (!oldcurs)
oldcurs = GetCursor();
SetCursor(i & 8 ? dragCur : noCur);
}
break;
case WM_LBUTTONDOWN:
SetFocus(hwnd);
menuData = (struct resRes *)GetWindowLong(hwnd, 0);
SendMessage(hwnd, WM_COMMAND, ID_EDIT + (EN_KILLFOCUS << 16), 0);
开发者ID:jossk,项目名称:OrangeC,代码行数:67,代码来源:drawmenu.c
示例4: WepWindowsDlgProc
//.........这里部分代码省略.........
}
break;
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDCANCEL:
//case IDOK:
DestroyWindow(hwndDlg);
break;
case IDC_REFRESH:
WepRefreshWindows(context);
break;
case ID_SHOWCONTEXTMENU:
{
POINT point;
PWE_WINDOW_NODE *windows;
ULONG numberOfWindows;
HMENU menu;
HMENU subMenu;
point.x = (SHORT)LOWORD(lParam);
point.y = (SHORT)HIWORD(lParam);
WeGetSelectedWindowNodes(
&context->TreeContext,
&windows,
&numberOfWindows
);
if (numberOfWindows != 0)
{
menu = LoadMenu(PluginInstance->DllBase, MAKEINTRESOURCE(IDR_WINDOW));
subMenu = GetSubMenu(menu, 0);
SetMenuDefaultItem(subMenu, ID_WINDOW_PROPERTIES, FALSE);
if (numberOfWindows == 1)
{
WINDOWPLACEMENT placement = { sizeof(placement) };
BYTE alpha;
ULONG flags;
ULONG i;
ULONG id;
// State
GetWindowPlacement(windows[0]->WindowHandle, &placement);
if (placement.showCmd == SW_MINIMIZE)
PhEnableMenuItem(subMenu, ID_WINDOW_MINIMIZE, FALSE);
else if (placement.showCmd == SW_MAXIMIZE)
PhEnableMenuItem(subMenu, ID_WINDOW_MAXIMIZE, FALSE);
else if (placement.showCmd == SW_NORMAL)
PhEnableMenuItem(subMenu, ID_WINDOW_RESTORE, FALSE);
// Visible
CheckMenuItem(subMenu, ID_WINDOW_VISIBLE,
(GetWindowLong(windows[0]->WindowHandle, GWL_STYLE) & WS_VISIBLE) ? MF_CHECKED : MF_UNCHECKED);
// Enabled
CheckMenuItem(subMenu, ID_WINDOW_ENABLED,
!(GetWindowLong(windows[0]->WindowHandle, GWL_STYLE) & WS_DISABLED) ? MF_CHECKED : MF_UNCHECKED);
// Always on Top
开发者ID:JamesLinus,项目名称:processhacker_2.33,代码行数:67,代码来源:wnddlg.c
示例5: GetWindowLong
//.........这里部分代码省略.........
ListView_SetBkColor( nav->mTree, GetSysColor( COLOR_3DFACE ) );
ListView_SetTextBkColor( nav->mTree, GetSysColor( COLOR_3DFACE ) );
nav->mListWndProc = ( WNDPROC )GetWindowLong( nav->mTree, GWL_WNDPROC );
SetWindowLong( nav->mTree, GWL_USERDATA, ( LONG )nav );
SetWindowLong( nav->mTree, GWL_WNDPROC, ( LONG )ListWndProc );
// Insert the only column
col.mask = 0;
ListView_InsertColumn( nav->mTree, 0, &col );
break;
}
case WM_SIZE: {
RECT rClient;
MoveWindow( nav->mTree, 0, 0, LOWORD( lParam ), HIWORD( lParam ), TRUE );
GetClientRect( nav->mTree, &rClient );
ListView_SetColumnWidth( nav->mTree, 0, rClient.right - rClient.left - 1 );
break;
}
case WM_NCACTIVATE:
return gApp.ToolWindowActivate( gApp.GetMDIFrame(), msg, wParam, lParam );
case WM_NOTIFY: {
LPNMHDR nh;
nh = ( LPNMHDR ) lParam;
switch( nh->code ) {
case NM_CLICK:
case NM_DBLCLK: {
DWORD dwpos = GetMessagePos();
LVHITTESTINFO info;
info.pt.x = LOWORD( dwpos );
info.pt.y = HIWORD( dwpos );
MapWindowPoints( HWND_DESKTOP, nh->hwndFrom, &info.pt, 1 );
int index = ListView_HitTest( nav->mTree, &info );
if( index != -1 ) {
RECT rItem;
int offset;
ListView_GetItemRect( nav->mTree, index, &rItem, LVIR_BOUNDS );
LVITEM item;
item.mask = LVIF_PARAM;
item.iItem = index;
ListView_GetItem( nav->mTree, &item );
idWindow *window = ( idWindow * )item.lParam;
rvGEWindowWrapper *wrapper = rvGEWindowWrapper::GetWrapper( window );
offset = wrapper->GetDepth( ) * 10 + 1;
if( info.pt.x < GENAV_ITEMHEIGHT ) {
if( !rvGEWindowWrapper::GetWrapper( window )->IsHidden( ) ) {
nav->mWorkspace->HideWindow( window );
} else {
nav->mWorkspace->UnhideWindow( window );
}
} else if( info.pt.x > GENAV_ITEMHEIGHT + offset && info.pt.x < GENAV_ITEMHEIGHT + offset + 16 ) {
if( wrapper->CanHaveChildren( ) && window->GetChildCount( ) ) {
if( wrapper->IsExpanded( ) ) {
wrapper->Collapse( );
nav->Update( );
} else {
wrapper->Expand( );
nav->Update( );
}
}
} else if( nh->code == NM_DBLCLK ) {
SendMessage( gApp.GetMDIFrame( ), WM_COMMAND, MAKELONG( ID_GUIED_ITEM_PROPERTIES, 0 ), 0 );
}
}
break;
}
case NM_RCLICK: {
DWORD dwpos = GetMessagePos();
LVHITTESTINFO info;
info.pt.x = LOWORD( dwpos );
info.pt.y = HIWORD( dwpos );
MapWindowPoints( HWND_DESKTOP, nh->hwndFrom, &info.pt, 1 );
int index = ListView_HitTest( nav->mTree, &info );
if( index != -1 ) {
ClientToScreen( hWnd, &info.pt );
HMENU menu = GetSubMenu( LoadMenu( gApp.GetInstance(), MAKEINTRESOURCE( IDR_GUIED_ITEM_POPUP ) ), 0 );
TrackPopupMenu( menu, TPM_RIGHTBUTTON | TPM_LEFTALIGN, info.pt.x, info.pt.y, 0, gApp.GetMDIFrame( ), NULL );
DestroyMenu( menu );
}
break;
}
case LVN_ITEMCHANGED: {
NMLISTVIEW *nml = ( NMLISTVIEW * ) nh;
if( ( nml->uNewState & LVIS_SELECTED ) != ( nml->uOldState & LVIS_SELECTED ) ) {
LVITEM item;
item.iItem = nml->iItem;
item.mask = LVIF_PARAM;
ListView_GetItem( nav->mTree, &item );
if( nml->uNewState & LVIS_SELECTED ) {
nav->mWorkspace->GetSelectionMgr().Add( ( idWindow * )item.lParam, false );
} else {
nav->mWorkspace->GetSelectionMgr().Remove( ( idWindow * )item.lParam );
}
}
break;
}
}
break;
}
}
return DefWindowProc( hWnd, msg, wParam, lParam );
}
开发者ID:SL987654,项目名称:The-Darkmod-Experimental,代码行数:101,代码来源:GENavigator.cpp
示例6: MessageBox
bool CConEmuInside::TurnExplorerTipPane(wchar_t (&szAddMsg)[128])
{
bool bRepeat = false;
int nBtn = IDCANCEL;
DWORD_PTR nRc;
LRESULT lSendRc;
if (gnOsVer < 0x600)
{
// WinXP, Win2k3
nBtn = IDYES; // MessageBox(L"Tip pane is not found in Explorer window!\nThis pane is required for 'ConEmu Inside' mode.\nDo you want to show this pane?", MB_ICONQUESTION|MB_YESNO);
if (nBtn == IDYES)
{
#if 0
HWND hWorker = GetDlgItem(mh_InsideParentRoot, 0xA005);
#ifdef _DEBUG
if (hWorker)
{
HWND hReBar = FindWindowEx(hWorker, NULL, L"ReBarWindow32", NULL);
if (hReBar)
{
POINT pt = {4,4};
HWND hTool = ChildWindowFromPoint(hReBar, pt);
if (hTool)
{
//TBBUTTON tb = {};
//lSendRc = SendMessageTimeout(mh_InsideParentRoot, TB_GETBUTTON, 2, (LPARAM)&tb, SMTO_NOTIMEOUTIFNOTHUNG, 500, &nRc);
//if (tb.idCommand)
//{
// NMTOOLBAR nm = {{hTool, 0, TBN_DROPDOWN}, 32896/*tb.idCommand*/};
// lSendRc = SendMessageTimeout(mh_InsideParentRoot, WM_NOTIFY, 0, (LPARAM)&nm, SMTO_NOTIMEOUTIFNOTHUNG, 500, &nRc);
//}
lSendRc = SendMessageTimeout(mh_InsideParentRoot, WM_COMMAND, 32896, 0, SMTO_NOTIMEOUTIFNOTHUNG, 500, &nRc);
}
}
}
// There is no way to force "Tip pane" in WinXP
// if popup menu "View -> Explorer bar" was not _shown_ at least once
// In that case, Explorer ignores WM_COMMAND(41536) and does not reveal tip pane.
HMENU hMenu1 = GetMenu(mh_InsideParentRoot), hMenu2 = NULL, hMenu3 = NULL;
if (hMenu1)
{
hMenu2 = GetSubMenu(hMenu1, 2);
//if (!hMenu2)
//{
// lSendRc = SendMessageTimeout(mh_InsideParentRoot, WM_MENUSELECT, MAKELONG(2,MF_POPUP), (LPARAM)hMenu1, SMTO_NOTIMEOUTIFNOTHUNG, 1500, &nRc);
// hMenu2 = GetSubMenu(hMenu1, 2);
//}
if (hMenu2)
{
hMenu3 = GetSubMenu(hMenu2, 2);
}
}
#endif
#endif
//INPUT keys[4] = {INPUT_KEYBOARD,INPUT_KEYBOARD,INPUT_KEYBOARD,INPUT_KEYBOARD};
//keys[0].ki.wVk = VK_F10; keys[0].ki.dwFlags = 0; //keys[0].ki.wScan = MapVirtualKey(VK_F10,MAPVK_VK_TO_VSC);
//keys[1].ki.wVk = VK_F10; keys[1].ki.dwFlags = KEYEVENTF_KEYUP; //keys[0].ki.wScan = MapVirtualKey(VK_F10,MAPVK_VK_TO_VSC);
//keys[1].ki.wVk = 'V';
//keys[2].ki.wVk = 'E';
//keys[3].ki.wVk = 'T';
//LRESULT lSentRc = 0;
//SetForegroundWindow(mh_InsideParentRoot);
//LRESULT lSentRc = SendInput(2/*countof(keys)*/, keys, sizeof(keys[0]));
//lSentRc = SendMessageTimeout(mh_InsideParentRoot, WM_SYSKEYUP, 'V', 0, SMTO_NOTIMEOUTIFNOTHUNG, 5000, &nRc);
lSendRc = SendMessageTimeout(mh_InsideParentRoot, WM_COMMAND, EMID_TIPOFDAY/*41536*/, 0, SMTO_NOTIMEOUTIFNOTHUNG, 5000, &nRc);
UNREFERENCED_PARAMETER(lSendRc);
mb_InsidePaneWasForced = true;
// Подготовим сообщение если не удастся
wcscpy_c(szAddMsg, L"Forcing Explorer to show Tip pane failed.\nShow pane yourself and recall ConEmu.\n\n");
}
}
if (nBtn == IDYES)
{
// Первая проверка
mh_InsideParentWND = mh_InsideParentRel = NULL;
m_InsideIntegration = ii_Auto;
InsideFindShellView(mh_InsideParentRoot);
if (mh_InsideParentWND && mh_InsideParentRel)
{
bRepeat = true;
goto wrap;
}
// Если не нашли - задержка и повторная проверка
Sleep(500);
mh_InsideParentWND = mh_InsideParentRel = NULL;
m_InsideIntegration = ii_Auto;
InsideFindShellView(mh_InsideParentRoot);
if (mh_InsideParentWND && mh_InsideParentRel)
{
bRepeat = true;
//.........这里部分代码省略.........
开发者ID:Alexander-Shukaev,项目名称:ConEmu,代码行数:101,代码来源:Inside.cpp
示例7: WinMain
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
char *pb;
char *pe;
WNDCLASS wc;
HWND hWnd;
HMENU hMainMenu;
MSG msg;
for (pb = lpCmdLine; *pb == ' ' || *pb == '\t'; pb++);
for (pe = pb; *pe != '\0'; pe++);
while (--pe > pb && (*pe == ' ' || *pe == '\t'));
/* Now pb and pe point at respectively the first and last
non-blank character in lpCmdLine. If pb > pe then the command line
is blank. */
if (*pb == '"' && *pe == '"')
pb++;
else
pe++;
*pe = '\0';
/* Now pb contains the filename, if any, specified on the command line. */
hWnd = FindWindow(WND_CLASS_NAME, NULL);
if (hWnd != NULL) {
/* as instance of WASAP is already running */
if (*pb != '\0') {
/* pass the filename */
COPYDATASTRUCT cds = { 'O', (DWORD) (pe + 1 - pb), pb };
SendMessage(hWnd, WM_COPYDATA, (WPARAM) NULL, (LPARAM) &cds);
}
else {
/* bring the open dialog to top */
HWND hChild = GetLastActivePopup(hWnd);
if (hChild != hWnd)
SetForegroundWindow(hChild);
}
return 0;
}
wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;
wc.lpfnWndProc = MainWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APP));
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
wc.lpszMenuName = NULL;
wc.lpszClassName = WND_CLASS_NAME;
RegisterClass(&wc);
hWnd = CreateWindow(WND_CLASS_NAME,
APP_TITLE,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
hStopIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_STOP));
hPlayIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_PLAY));
hMainMenu = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_TRAYMENU));
hTrayMenu = GetSubMenu(hMainMenu, 0);
hSongMenu = CreatePopupMenu();
InsertMenu(hTrayMenu, 1, MF_BYPOSITION | MF_ENABLED | MF_STRING | MF_POPUP,
(UINT_PTR) hSongMenu, "So&ng");
hQualityMenu = GetSubMenu(hTrayMenu, 3);
SetMenuDefaultItem(hTrayMenu, 0, TRUE);
Tray_Add(hWnd, hStopIcon);
SetQuality(hWnd, use_16bit, quality);
if (*pb != '\0') {
memcpy(strFile, pb, pe + 1 - pb);
LoadFile(hWnd);
}
else
SelectAndLoadFile(hWnd);
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
WaveOut_Close();
Tray_Delete(hWnd);
DestroyMenu(hMainMenu);
return 0;
}
开发者ID:Erikhht,项目名称:TCPMP,代码行数:91,代码来源:wasap.c
示例8: GetSubMenu
void TrayIcon::OnContextMenu()
{
HMENU hMenu, hmenuTrackPopup;
POINT pt;
HRESULT res;
int i;
Desktop * desk;
//Get the "base" menu
hMenu = Locale::GetInstance().LoadMenu(IDC_VIRTUALDIMENSION);
if (hMenu == NULL)
return;
hmenuTrackPopup = GetSubMenu(hMenu, 0);
//Append the list of desktops
InsertMenu(hmenuTrackPopup, 0, MF_BYPOSITION | MF_SEPARATOR, 0, 0);
i = 0;
for( desk = deskMan->GetFirstDesktop();
desk != NULL;
desk = deskMan->GetNextDesktop())
{
MENUITEMINFO mii;
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_STATE | MIIM_STRING | MIIM_ID | MIIM_DATA;
if (desk->IsActive())
mii.fState = MFS_CHECKED;
else
mii.fState = MFS_UNCHECKED;
mii.dwItemData = (DWORD_PTR)desk;
mii.dwTypeData = desk->GetText();
mii.cch = (UINT)_tcslen(mii.dwTypeData);
mii.wID = WM_USER + i++;
InsertMenuItem(hmenuTrackPopup, 0, TRUE, &mii);
}
//And show the menu
GetCursorPos(&pt);
SetForegroundWindow(m_hWnd);
res = TrackPopupMenu(hmenuTrackPopup, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, m_hWnd, NULL);
//Process the resulting message
if (res >= WM_USER)
{
Desktop * desk;
MENUITEMINFO mii;
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_DATA;
GetMenuItemInfo(hmenuTrackPopup, res, FALSE, &mii);
desk = (Desktop*)mii.dwItemData;
deskMan->SwitchToDesktop(desk);
InvalidateRect(m_hWnd, NULL, TRUE);
}
else
PostMessage(m_hWnd, WM_COMMAND, res, 0);
//Do not forget to destroy the menu
DestroyMenu(hMenu);
}
开发者ID:HaijinW,项目名称:VirtualDimension,代码行数:62,代码来源:TrayIcon.cpp
示例9: OnCreate
//.........这里部分代码省略.........
item.mask = TCIF_TEXT;
item.pszText = wszPerformance;
SendMessageW(hTabWnd, TCM_INSERTITEMW, 2, (LPARAM)&item);
/* Size everything correctly */
GetClientRect(hWnd, &rc);
nOldWidth = rc.right;
nOldHeight = rc.bottom;
/* nOldStartX = rc.left; */
/*nOldStartY = rc.top; */
#define PAGE_OFFSET_LEFT 17
#define PAGE_OFFSET_TOP 72
#define PAGE_OFFSET_WIDTH (PAGE_OFFSET_LEFT*2)
#define PAGE_OFFSET_HEIGHT (PAGE_OFFSET_TOP+32)
if ((TaskManagerSettings.Left != 0) ||
(TaskManagerSettings.Top != 0) ||
(TaskManagerSettings.Right != 0) ||
(TaskManagerSettings.Bottom != 0))
{
MoveWindow(hWnd, TaskManagerSettings.Left, TaskManagerSettings.Top, TaskManagerSettings.Right - TaskManagerSettings.Left, TaskManagerSettings.Bottom - TaskManagerSettings.Top, TRUE);
#ifdef __GNUC__TEST__
MoveWindow(hApplicationPage, TaskManagerSettings.Left + PAGE_OFFSET_LEFT, TaskManagerSettings.Top + PAGE_OFFSET_TOP, TaskManagerSettings.Right - TaskManagerSettings.Left - PAGE_OFFSET_WIDTH, TaskManagerSettings.Bottom - TaskManagerSettings.Top - PAGE_OFFSET_HEIGHT, FALSE);
MoveWindow(hProcessPage, TaskManagerSettings.Left + PAGE_OFFSET_LEFT, TaskManagerSettings.Top + PAGE_OFFSET_TOP, TaskManagerSettings.Right - TaskManagerSettings.Left - PAGE_OFFSET_WIDTH, TaskManagerSettings.Bottom - TaskManagerSettings.Top - PAGE_OFFSET_HEIGHT, FALSE);
MoveWindow(hPerformancePage, TaskManagerSettings.Left + PAGE_OFFSET_LEFT, TaskManagerSettings.Top + PAGE_OFFSET_TOP, TaskManagerSettings.Right - TaskManagerSettings.Left - PAGE_OFFSET_WIDTH, TaskManagerSettings.Bottom - TaskManagerSettings.Top - PAGE_OFFSET_HEIGHT, FALSE);
#endif
}
if (TaskManagerSettings.Maximized)
ShowWindow(hWnd, SW_MAXIMIZE);
/* Set the always on top style */
hMenu = GetMenu(hWnd);
hEditMenu = GetSubMenu(hMenu, 1);
hViewMenu = GetSubMenu(hMenu, 2);
hUpdateSpeedMenu = GetSubMenu(hViewMenu, 1);
hCPUHistoryMenu = GetSubMenu(hViewMenu, 7);
/* Check or uncheck the always on top menu item */
if (TaskManagerSettings.AlwaysOnTop) {
CheckMenuItem(hEditMenu, ID_OPTIONS_ALWAYSONTOP, MF_BYCOMMAND|MF_CHECKED);
SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
} else {
CheckMenuItem(hEditMenu, ID_OPTIONS_ALWAYSONTOP, MF_BYCOMMAND|MF_UNCHECKED);
SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
}
/* Check or uncheck the minimize on use menu item */
if (TaskManagerSettings.MinimizeOnUse)
CheckMenuItem(hEditMenu, ID_OPTIONS_MINIMIZEONUSE, MF_BYCOMMAND|MF_CHECKED);
else
CheckMenuItem(hEditMenu, ID_OPTIONS_MINIMIZEONUSE, MF_BYCOMMAND|MF_UNCHECKED);
/* Check or uncheck the hide when minimized menu item */
if (TaskManagerSettings.HideWhenMinimized)
CheckMenuItem(hEditMenu, ID_OPTIONS_HIDEWHENMINIMIZED, MF_BYCOMMAND|MF_CHECKED);
else
CheckMenuItem(hEditMenu, ID_OPTIONS_HIDEWHENMINIMIZED, MF_BYCOMMAND|MF_UNCHECKED);
/* Check or uncheck the show 16-bit tasks menu item */
if (TaskManagerSettings.Show16BitTasks)
CheckMenuItem(hEditMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND|MF_CHECKED);
else
CheckMenuItem(hEditMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND|MF_UNCHECKED);
if (TaskManagerSettings.View_LargeIcons)
开发者ID:Sunmonds,项目名称:wine,代码行数:67,代码来源:taskmgr.c
示例10: DlgProcDisplayData
//.........这里部分代码省略.........
SendDlgItemMessage(hwndDlg, IDC_STICK_BUTTON, BUTTONSETASFLATBTN, 0, 0);
SendDlgItemMessage(hwndDlg, IDC_UPDATE_BUTTON, BUTTONSETASFLATBTN, 0, 0);
SendDlgItemMessage(hwndDlg, IDC_FIND_BUTTON, BUTTONSETASFLATBTN, 0, 0);
SendDlgItemMessage(hwndDlg, IDC_OPTIONS_BUTTON, BUTTONSETASFLATBTN, 0, 0);
SendDlgItemMessage(hwndDlg, IDC_ALERT_BUTTON, BUTTONSETASFLATBTN, 0, 0);
SendDlgItemMessage(hwndDlg, IDC_STOP, BUTTONSETASFLATBTN, 0, 0);
SendDlgItemMessage(hwndDlg, IDC_OPEN_URL, BUTTONSETASFLATBTN, 0, 0);
HDC hdc = GetDC(GetDlgItem(hwndDlg, IDC_STATUSBAR));
SelectObject(hdc, (HFONT) SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, WM_GETFONT, 0, 0));
SIZE textSize;
GetTextExtentPoint32(hdc, tszSizeString, _countof(tszSizeString), &textSize);
int partWidth[2] = { textSize.cx, -1 };
ReleaseDC(GetDlgItem(hwndDlg, IDC_STATUSBAR), hdc);
SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, SB_SETPARTS, _countof(partWidth), (LPARAM)partWidth);
SendDlgItemMessage(hwndDlg, IDC_STATUSBAR, SB_SETTEXT, 1 | SBT_OWNERDRAW, 0);
if ( db_get_b(NULL, MODULENAME, SAVE_INDIVID_POS_KEY, 0))
Utils_RestoreWindowPosition(hwndDlg, hContact2, MODULENAME, "WV");
}
break;
case WM_NOTIFY:
switch (((NMHDR *) lParam)->code) {
case EN_MSGFILTER:
switch (((MSGFILTER *) lParam)->msg) {
case WM_RBUTTONUP:
{
POINT pt;
CHARRANGE sel, all = {0, -1};
HMENU hSubMenu = GetSubMenu(hMenu, 0);
TranslateMenu(hSubMenu);
SendMessage(((NMHDR *) lParam)->hwndFrom, EM_EXGETSEL, 0, (LPARAM) & sel);
EnableMenuItem(hSubMenu, IDM_COPY, MF_ENABLED);
EnableMenuItem(hSubMenu, IDM_CUT, MF_ENABLED);
EnableMenuItem(hSubMenu, IDM_DELETE, MF_ENABLED);
if (sel.cpMin == sel.cpMax) {
EnableMenuItem(hSubMenu, IDM_COPY, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hSubMenu, IDM_CUT, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hSubMenu, IDM_DELETE, MF_BYCOMMAND | MF_GRAYED);
}
pt.x = (short) LOWORD(((ENLINK *) lParam)->lParam);
pt.y = (short) HIWORD(((ENLINK *) lParam)->lParam);
ClientToScreen(((NMHDR *) lParam)->hwndFrom, &pt);
switch (TrackPopupMenu(hSubMenu, TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, NULL)) {
case IDM_COPY:
SendMessage(((NMHDR *) lParam)->hwndFrom, WM_COPY, 0, 0);
break;
case IDM_COPYALL:
SendMessage(((NMHDR *) lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM) & all);
SendMessage(((NMHDR *) lParam)->hwndFrom, WM_COPY, 0, 0);
SendMessage(((NMHDR *) lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM) & sel);
break;
case IDM_SELECTALL:
SendMessage(((NMHDR *) lParam)->hwndFrom, EM_EXSETSEL, 0, (LPARAM) & all);
break;
case IDM_CUT:
SendMessage(((NMHDR *) lParam)->hwndFrom, WM_CUT, 0, 0);
开发者ID:kmdtukl,项目名称:miranda-ng,代码行数:67,代码来源:webview_datawnd.cpp
示例11: __glutWindowProc
//.........这里部分代码省略.........
CPU spiking when an idle function is installed. */
if (wParam == 2)
return 0;
#endif
/* only worry about the idle function and the timeouts, since
these are the only events we expect to process during
processing of a menu. */
/* we no longer process the idle functions (as outlined in the
README), since drawing can't be done until the menu has
finished...it's pretty lame when the animation goes on, but
doesn't update, so you get this weird jerkiness. */
#if 0
if (__glutIdleFunc)
__glutIdleFunc();
#endif
if (__glutTimerList)
handleTimeouts();
return 0;
case WM_EXITMENULOOP:
/* nuke the above created timer...we don't need it anymore, since
the menu is gone now. */
KillTimer(hwnd, 1);
return 0;
case WM_MENUSELECT:
if (lParam != 0)
__glutHMenu = (HMENU)lParam;
return 0;
case WM_COMMAND:
if (__glutMappedMenu) {
if (GetSubMenu(__glutHMenu, LOWORD(wParam)))
__glutItemSelected = NULL;
else
__glutItemSelected =
__glutGetUniqueMenuItem(__glutMappedMenu, LOWORD(wParam));
GetCursorPos(&point);
ScreenToClient(hwnd, &point);
__glutFinishMenu(hwnd, point.x, point.y);
}
return 0;
case WM_MOUSEMOVE:
if (!__glutMappedMenu) {
window = __glutGetWindow(hwnd);
if (window) {
/* If motion function registered _and_ buttons held *
down, call motion function... */
x = LOWORD(lParam);
y = HIWORD(lParam);
/* Win32 doesn't return the same numbers as X does when the
mouse goes beyond the upper or left side of the window.
roll the Win32's 0..2^16 pointer co-ord range to 0..+/-2^15. */
if(x & 1 << 15) x -= (1 << 16);
if(y & 1 << 15) y -= (1 << 16);
if (window->motion && wParam &
(MK_LBUTTON | MK_MBUTTON | MK_RBUTTON)) {
__glutSetWindow(window);
window->motion(x, y);
}
/* If passive motion function registered _and_
buttons not held down, call passive motion
开发者ID:hiteshsathawane,项目名称:Cube-Rotation,代码行数:67,代码来源:win32_util.c
示例12: WinObjExMain
//.........这里部分代码省略.........
break;
g_hwndObjectList = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, NULL,
WS_VISIBLE | WS_CHILD | WS_TABSTOP | LVS_AUTOARRANGE | LVS_REPORT |
LVS_SHOWSELALWAYS | LVS_SINGLESEL | LVS_SHAREIMAGELISTS, 0, 0, 0, 0,
MainWindow, (HMENU)1003, g_WinObj.hInstance, NULL);
if (g_hwndObjectList == NULL)
break;
hwndToolBar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
WS_VISIBLE | WS_CHILD | CCS_TOP | TBSTYLE_FLAT | TBSTYLE_TRANSPARENT |
TBSTYLE_TOOLTIPS, 0, 0, 0, 0, MainWindow, (HMENU)1004, g_WinObj.hInstance, NULL);
if (hwndToolBar == NULL)
break;
hwndSplitter = CreateWindowEx(0, WC_STATIC, NULL,
WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, MainWindow, (HMENU)1005, g_WinObj.hInstance, NULL);
// initialization of views
SendMessage(MainWindow, WM_SIZE, 0, 0);
ListView_SetExtendedListViewStyle(g_hwndObjectList,
LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_LABELTIP | LVS_EX_DOUBLEBUFFER);
// set tree imagelist
TreeViewImages = supLoadImageList(g_WinObj.hInstance, IDI_ICON_VIEW_DEFAULT, IDI_ICON_VIEW_SELECTED);
if (TreeViewImages) {
TreeView_SetImageList(g_hwndObjectTree, TreeViewImages, TVSIL_NORMAL);
}
//not enough user rights, insert run as admin menu entry and hide admin only stuff
if ((IsFullAdmin == FALSE) && (g_kdctx.IsWine == FALSE)) {
hMenu = GetSubMenu(GetMenu(MainWindow), 0);
InsertMenu(hMenu, 0, MF_BYPOSITION, ID_FILE_RUNASADMIN, T_RUNASADMIN);
InsertMenu(hMenu, 1, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);
//set menu shield icon
RtlSecureZeroMemory(&sii, sizeof(sii));
sii.cbSize = sizeof(sii);
if (SHGetStockIconInfo(SIID_SHIELD, SHGSI_ICON | SHGFI_SMALLICON, &sii) == S_OK) {
supSetMenuIcon(hMenu, ID_FILE_RUNASADMIN, (ULONG_PTR)sii.hIcon);
}
}
if (g_kdctx.hDevice == NULL) {
//require driver usage, remove
DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_SSDT, MF_BYCOMMAND);
DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_PRIVATENAMESPACES, MF_BYCOMMAND);
}
//unsupported
if (g_WinObj.osver.dwBuildNumber > 10240) {
DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_PRIVATENAMESPACES, MF_BYCOMMAND);
}
//wine unsupported
if (g_kdctx.IsWine != FALSE) {
DeleteMenu(GetSubMenu(GetMenu(MainWindow), 4), ID_EXTRAS_DRIVERS, MF_BYCOMMAND);
}
//load listview images
g_ListViewImages = supLoadImageList(g_WinObj.hInstance, IDI_ICON_DEVICE, IDI_ICON_UNKNOWN);
if (g_ListViewImages) {
hIcon = LoadImage(g_WinObj.hInstance, MAKEINTRESOURCE(IDI_ICON_SORTUP), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR);
if (hIcon) {
ImageList_ReplaceIcon(g_ListViewImages, -1, hIcon);
开发者ID:songbei6,项目名称:WinObjEx64,代码行数:67,代码来源:main.c
示例13: PhpFindObjectsDlgProc
//.........这里部分代码省略.........
break;
case VK_DELETE:
SendMessage(hwndDlg, WM_COMMAND, ID_OBJECT_CLOSE, 0);
break;
}
}
}
break;
}
}
break;
case WM_CONTEXTMENU:
{
if ((HWND)wParam == PhFindObjectsListViewHandle)
{
POINT point;
PPHP_OBJECT_SEARCH_RESULT *results;
ULONG numberOfResults;
point.x = (SHORT)LOWORD(lParam);
point.y = (SHORT)HIWORD(lParam);
if (point.x == -1 && point.y == -1)
PhGetListViewContextMenuPoint((HWND)wParam, &point);
PhGetSelectedListViewItemParams(PhFindObjectsListViewHandle, &results, &numberOfResults);
if (numberOfResults != 0)
{
HMENU menu;
HMENU subMenu;
menu = LoadMenu(PhInstanceHandle, MAKEINTRESOURCE(IDR_FINDOBJ));
subMenu = GetSubMenu(menu, 0);
SetMenuDefaultItem(subMenu, ID_OBJECT_PROPERTIES, FALSE);
PhpInitializeFindObjMenu(
subMenu,
results,
numberOfResults
);
PhShowContextMenu(
hwndDlg,
PhFindObjectsListViewHandle,
subMenu,
point
);
DestroyMenu(menu);
}
PhFree(results);
}
}
break;
case WM_SIZE:
{
PhLayoutManagerLayout(&WindowLayoutManager);
}
break;
case WM_SIZING:
{
PhResizingMinimumSize((PRECT)lParam, wParam, MinimumSize.right, MinimumSize.bottom);
}
break;
case WM_PH_SEARCH_UPDATE:
开发者ID:john-peterson,项目名称:processhacker,代码行数:67,代码来源:findobj.c
示例14: createWindow
void
CMSWindowsClientTaskBarReceiver::runMenu(int x, int y)
{
// do popup menu. we need a window to pass to TrackPopupMenu().
// the SetForegroundWindow() and SendMessage() calls around
// TrackPopupMenu() are to get the menu to be dismissed when
// another window gets activated and are just one of those
// win32 weirdnesses.
createWindow();
SetForegroundWindow(m_window);
HMENU menu = GetSubMenu(m_menu, 0);
SetMenuDefaultItem(menu, IDC_TASKBAR_STATUS, FALSE);
HMENU logLevelMenu = GetSubMenu(menu, 3);
CheckMenuRadioItem(logLevelMenu, 0, 6,
CLOG->getFilter() - kERROR, MF_BYPOSITION);
int n = TrackPopupMenu(menu,
TPM_NONOTIFY |
TPM_RETURNCMD |
TPM_LEFTBUTTON |
TPM_RIGHTBUTTON,
x, y, 0, m_window, NULL);
SendMessage(m_window, WM_NULL, 0, 0);
// perform the requested operation
switch (n) {
case IDC_TASKBAR_STATUS:
showStatus();
break;
case IDC_TASKBAR_LOG:
copyLog();
break;
case IDC_TASKBAR_SHOW_LOG:
ARCH->showConsole(true);
break;
case IDC_TASKBAR_LOG_LEVEL_ERROR:
CLOG->setFilter(kERROR);
break;
case IDC_TASKBAR_LOG_LEVEL_WARNING:
CLOG->setFilter(kWARNING);
break;
case IDC_TASKBAR_LOG_LEVEL_NOTE:
CLOG->setFilter(kNOTE);
break;
case IDC_TASKBAR_LOG_LEVEL_INFO:
CLOG->setFilter(kINFO);
break;
case IDC_TASKBAR_LOG_LEVEL_DEBUG:
CLOG->setFilter(kDEBUG);
break;
case IDC_TASKBAR_LOG_LEVEL_DEBUG1:
CLOG->setFilter(kDEBUG1);
break;
case IDC_TASKBAR_LOG_LEVEL_DEBUG2:
CLOG->setFilter(kDEBUG2);
break;
case IDC_TASKBAR_QUIT:
quit();
break;
}
}
开发者ID:dbkr,项目名称:synergy-onnaf,代码行数:70,代码来源:CMSWindowsClientTaskBarReceiver.cpp
示例15: createWindow
void
CMSWindowsServerTaskBarReceiver::runMenu(int x, int y)
{
// do popup menu. we need a window to pass to TrackPopupMenu().
// the SetForegroundWindow() and SendMessage() calls around
// TrackPopupMenu() are to get the menu to be dismissed when
// another window gets activated and are just one of those
// win32 weirdnesses.
createWindow();
SetForegroundWindow(m_window);
HMENU menu = GetSubMenu(m_menu, 0);
SetMenuDefaultItem(menu, IDC_TASKBAR_STATUS, FALSE);
HMENU logLevelMenu = GetSubMenu(menu, 3);
CheckMenuRadioItem(logLevelMenu, 0, 6,
CLOG->getFilter() - CLog::kERROR, MF_BYPOSITION);
int n = TrackPopupMenu(menu,
TPM_NONOTIFY |
TPM_RETURNCMD |
TPM_LEFTBUTTON |
TPM_RIGHTBUTTON,
x, y, 0, m_window, NULL);
SendMessage(m_window, WM_NULL, 0, 0);
// perform the requested operation
switch (n) {
case IDC_TASKBAR_STATUS:
showStatus();
break;
case IDC_TASKBAR_LOG:
copyLog();
break;
case IDC_TASKBAR_SHOW_LOG:
ARCH->showConsole(true);
break;
case IDC_RELOAD_CONFIG:
EVENTQUEUE->addEvent(CEvent(getReloadConfigEvent(),
IEventQueue::getSystemTarget()));
break;
case IDC_FORCE_RECONNECT:
EVENTQUEUE->addEvent(CEvent(getForceReconnectEvent(),
IEventQueue::getSystemTarget()));
break;
case ID_SYNERGY_RESETSERVER:
EVENTQUEUE->addEvent(CEvent(getResetServerEvent(),
IEventQueue::getSystemTarget()));
break;
case IDC_TASKBAR_LOG_LEVEL_ERROR:
CLOG->setFilter(CLog::kERROR);
break;
case IDC_TASKBAR_LOG_LEVEL_WARNING:
CLOG->setFilter(CLog::kWARNING);
break;
case IDC_TASKBAR_LOG_LEVEL_NOTE:
CLOG->setFilter(CLog::kNOTE);
break;
case IDC_TASKBAR_LOG_LEVEL_INFO:
CLOG->setFilter(CLog::kINFO);
break;
case IDC_TASKBAR_LOG_LEVEL_DEBUG:
CLOG->setFilter(CLog::kDEBUG);
break;
case IDC_TASKBAR_LOG_LEVEL_DEBUG1:
CLOG->setFilter(CLog::kDEBUG1);
break;
case IDC_TASKBAR_LOG_LEVEL_DEBUG2:
CLOG->setFilter(CLog::kDEBUG2);
break;
case IDC_TASKBAR_QUIT:
quit();
break;
}
}
开发者ID:axelson,项目名称:synergy-plus,代码行数:85,代码来源:CMSWindowsServerTaskBarReceiver.cpp
示例16: TaskManager_OnTabWndSelChange
static void TaskManager_OnTabWndSelChange(void)
{
int i;
HMENU hMenu;
HMENU hOptionsMenu;
HMENU hViewMenu;
HMENU hSubMenu;
WCHAR wszLargeIcons[255];
WCHAR wszSmallIcons[255];
WCHAR wszDetails[255];
WCHAR wszWindows[255];
WCHAR wszSelectColumns[255];
WCHAR wszShow16bTasks[255];
WCHAR wszOneGraphAllCPU[255];
WCHAR wszOneGraphPerCPU[255];
WCHAR wszCPUHistory[255];
WCHAR wszShowKernelTimes[255];
LoadStringW(hInst, IDS_VIEW_LARGE, wszLargeIcons, sizeof(wszLargeIcons)/sizeof(WCHAR));
LoadStringW(hInst, IDS_VIEW_SMALL, wszSmallIcons, sizeof(wszSmallIcons)/sizeof(WCHAR));
LoadStringW(hInst, IDS_VIEW_DETAILS, wszDetails, sizeof(wszDetails)/sizeof(WCHAR));
LoadStringW(hInst, IDS_WINDOWS, wszWindows, sizeof(wszWindows)/sizeof(WCHAR));
LoadStringW(hInst, IDS_VIEW_SELECTCOLUMNS, wszSelectColumns, sizeof(wszSelectColumns)/sizeof(WCHAR));
LoadStringW(hInst, IDS_OPTIONS_SHOW16BITTASKS, wszShow16bTasks, sizeof(wszShow16bTasks)/sizeof(WCHAR));
LoadStringW(hInst, IDS_VIEW_CPUHISTORY_ONEGRAPHALL, wszOneGraphAllCPU, sizeof(wszOneGraphAllCPU)/sizeof(WCHAR));
LoadStringW(hInst, IDS_VIEW_CPUHISTORY_ONEGRAPHPERCPU, wszOneGraphPerCPU, sizeof(wszOneGraphPerCPU)/sizeof(WCHAR));
LoadStringW(hInst, IDS_VIEW_CPUHISTORY, wszCPUHistory, sizeof(wszCPUHistory)/sizeof(WCHAR));
LoadStringW(hInst, IDS_VIEW_SHOWKERNELTIMES, wszShowKernelTimes, sizeof(wszShowKernelTimes)/sizeof(WCHAR));
hMenu = GetMenu(hMainWnd);
hViewMenu = GetSubMenu(hMenu, 2);
hOptionsMenu = GetSubMenu(hMenu, 1);
TaskManagerSettings.ActiveTabPage = SendMessageW(hTabWnd, TCM_GETCURSEL, 0, 0);
for (i = GetMenuItemCount(hViewMenu) - 1; i > 2; i--) {
hSubMenu = GetSubMenu(hViewMenu, i);
if (hSubMenu)
DestroyMenu(hSubMenu);
RemoveMenu(hViewMenu, i, MF_BYPOSITION);
}
RemoveMenu(hOptionsMenu, 3, MF_BYPOSITION);
switch (TaskManagerSettings.ActiveTabPage) {
case 0:
ShowWindow(hApplicationPage, SW_SHOW);
ShowWindow(hProcessPage, SW_HIDE);
ShowWindow(hPerformancePage, SW_HIDE);
BringWindowToTop(hApplicationPage);
AppendMenuW(hViewMenu, MF_STRING, ID_VIEW_LARGE, wszLargeIcons);
AppendMenuW(hViewMenu, MF_STR
|
请发表评论