托盘右键菜单如何当鼠标点击其他位置时消失.在线等. 本帖最后由 sbtddh 于 2011-08-17 16:31:52 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if (!menu.LoadMenu(m_ctiTrayIcon.m_tnd.uID)) return 0; if (!(pMenu = menu.GetSubMenu(0))) return 0; ::SetMenuDefaultItem(pMenu-> m_hMenu, 0, TRUE); CPoint pos; GetCursorPos(&pos); ::SetForegroundWindow(m_ctiTrayIcon.m_tnd.hWnd); ::TrackPopupMenu(pMenu-> m_hMenu, 0, pos.x, pos.y, 0, m_ctiTrayIcon.m_tnd.hWnd, NULL); menu.DestroyMenu(); SetForegroundWindow主要就是这个函数 在你弹出菜单之前,设置你的窗口为最前窗口,代码如下:POINT p; GetCursorPos( & p ); // Increase the thread priority by invoking SetForegroundWindow. SetForegroundWindow(); //设置窗口在最前面m_Menu.TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, p.x, p.y, this ); 4)调用TrackPopupMenu()之前,你必须先调用SetForegroundWindow( m_hWnd ),然后调用PostMessage( m_hWnd, WM_NULL, 0, 0 ): POINT point; GetCursorPos( &point ); SetForegroundWindow( m_hWnd ); TrackPopupMenu( hPopup, TPM_RIGHTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, point.x, point.y, 0, m_hWnd, 0 ); PostMessage( m_hWnd, WM_NULL, 0, 0 ); VC操作word绘制表格 问个很菜的问题,请问如何在单文档中加两个自己的菜单条啊? vs2008 对话框 类名 小女子刚入道,请教一个CTreeCtrl问题 菜鸟关于字符串的发问 请问COLLECTIONS中有没有哪个支持sort的? 急救!!!!哪里可以下载头文件<ipc.h.h>,<al_mslot.h>和<msg.h>? 我用的是VC++6.0 一个很奇怪的问题! 在VIEW里面动态生成的CGRIDCTRL如何将自己的消息发送到VIEW ATL问题 GDI+ 能不能根据设置的region绘制边框 VC为什么我没这样没有实现按钮的半透明???
return 0;
if (!(pMenu = menu.GetSubMenu(0)))
return 0; ::SetMenuDefaultItem(pMenu-> m_hMenu, 0, TRUE); CPoint pos;
GetCursorPos(&pos);
::SetForegroundWindow(m_ctiTrayIcon.m_tnd.hWnd);
::TrackPopupMenu(pMenu-> m_hMenu, 0, pos.x, pos.y,
0, m_ctiTrayIcon.m_tnd.hWnd, NULL);
menu.DestroyMenu();
GetCursorPos( & p ); // Increase the thread priority by invoking SetForegroundWindow.
SetForegroundWindow(); //设置窗口在最前面m_Menu.TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, p.x, p.y, this );
4)调用TrackPopupMenu()之前,你必须先调用SetForegroundWindow( m_hWnd ),然后调用PostMessage( m_hWnd, WM_NULL, 0, 0 ): POINT point;
GetCursorPos( &point );
SetForegroundWindow( m_hWnd );
TrackPopupMenu( hPopup,
TPM_RIGHTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON,
point.x,
point.y,
0,
m_hWnd, 0 );
PostMessage( m_hWnd, WM_NULL, 0, 0 );