右键点击托盘中的图标,然后弹出菜单时出错:if(lParam == WM_RBUTTONDOWN) //检测到鼠标右键消息
{
CMenu mnuTray;
mnuTray.LoadMenu(IDR_MNUNTI);// --〉加载Popup菜单 CMenu* pMenu = mnuTray.GetSubMenu(0); CPoint ptPos;
GetCursorPos(&ptPos); pMenu->TrackPopupMenu(TPM_RIGHTBUTTON, ptPos.x, ptPos.y, this); //出 错,原因是m_hMenu=NULL。
}我的程序是基于对话框的,大家知道为什么会错吗?
{
CMenu mnuTray;
mnuTray.LoadMenu(IDR_MNUNTI);// --〉加载Popup菜单 CMenu* pMenu = mnuTray.GetSubMenu(0); CPoint ptPos;
GetCursorPos(&ptPos); pMenu->TrackPopupMenu(TPM_RIGHTBUTTON, ptPos.x, ptPos.y, this); //出 错,原因是m_hMenu=NULL。
}我的程序是基于对话框的,大家知道为什么会错吗?
解决方案 »
- 获取窗口句柄及窗口控件的信息
- 程序不能执行
- 被主管批评的不行了,下面的代码什么问题?DestroyWindow(hwndtemp)窗口后连主窗口都看不见了,但可以find主窗句柄,重新show后看不到啊
- 如何获得String table中指定ID的字符串资源的长度?
- 如何得到复杂区域!
- 求教:两个程序之间的通信问题
- 怎么在本机用程序得知代理设置的需要不需要登录名与密码呢?
- MFC保存文件,具体代码如下,为什么为报错gwes.exe出现问题,将问题发送给Microsoft
- 如何获得一个窗口的工作区的坐标?(100分酬谢)
- 如何利用VC改变一个EXE文件的标题?
- 一个serverSocket怎么接受多个client阿?
- 请问怎样才可以让鼠标停在文本编辑控件(Edit Box)上面时显示文本标签呀?
{
CMenu menu;
menu.LoadMenu(IDR_MENU_ICON);
CMenu* pPopMenu0=menu.GetSubMenu(0);
CPoint pos;
GetCursorPos(&pos);
SetForegroundWindow();
pPopMenu0->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,pos.x,
pos.y,this);
}
else
{
if(lParam==WM_LBUTTONDBLCLK)
{
CTranDlg::ShowWindow(SW_SHOWNORMAL);
CTranDlg::ShowWindow(SW_SHOWNORMAL);
SetForegroundWindow();
}
else
{
if(lParam==WM_LBUTTONDOWN)
{
CMenu menu;
menu.LoadMenu(IDR_MENU_ICON);
CMenu* pPopMenu2=menu.GetSubMenu(2);
CPoint pos;
GetCursorPos(&pos);
SetForegroundWindow();
pPopMenu2->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,pos.x,pos.y,this);
}
}
}
m_hMenu将会在::TrackPopupMenu(...)中用到,而CMenu::TrackPopupMenu(...)封装了::TrackPopupMenu(...)