MFC程序,如何加载菜单资源在托盘图标的菜单上?
LRESULTCElWordDlg::OnShowTask(WPARAMwParam,LPARAMlParam){if(wParam!=IDI_ICON1)return1...
LRESULT CElWordDlg::OnShowTask(WPARAM wParam, LPARAM lParam)
{
if(wParam != IDI_ICON1)
return 1;
switch(lParam)
{
case WM_RBUTTONUP: // 右键起来时弹出菜单
{
LPPOINT lpoint = new tagPOINT;
::GetCursorPos(lpoint); // 得到鼠标位置
CMenu menu;
menu.CreatePopupMenu(); // 声明一个弹出式菜单
menu.AppendMenu(MF_STRING, WM_DESTROY, "关闭");
menu.TrackPopupMenu(TPM_LEFTALIGN, lpoint->x ,lpoint->y, this);
HMENU hmenu = menu.Detach();
menu.DestroyMenu();
delete lpoint;
}
break;
上面是看例子做的,但手工写menu.AppendMenu(MF_STRING, WM_DESTROY, "关闭");这样似乎不太方便,
应该是用menu.CreateMenu(IDR_TRAYMENU);
我这样编译通过了,但似乎右键托盘图标,显示得不太正常,菜单被缩起来成了一个子菜单,不知道是哪里出问题了?
正确加载IDR_TRAYMENU的方式应该是怎么用的呢?
问题好像是在menu.TrackPopupMenu上,我这个菜单貌似不应该是Popup的,请教正确方法。。。 展开
{
if(wParam != IDI_ICON1)
return 1;
switch(lParam)
{
case WM_RBUTTONUP: // 右键起来时弹出菜单
{
LPPOINT lpoint = new tagPOINT;
::GetCursorPos(lpoint); // 得到鼠标位置
CMenu menu;
menu.CreatePopupMenu(); // 声明一个弹出式菜单
menu.AppendMenu(MF_STRING, WM_DESTROY, "关闭");
menu.TrackPopupMenu(TPM_LEFTALIGN, lpoint->x ,lpoint->y, this);
HMENU hmenu = menu.Detach();
menu.DestroyMenu();
delete lpoint;
}
break;
上面是看例子做的,但手工写menu.AppendMenu(MF_STRING, WM_DESTROY, "关闭");这样似乎不太方便,
应该是用menu.CreateMenu(IDR_TRAYMENU);
我这样编译通过了,但似乎右键托盘图标,显示得不太正常,菜单被缩起来成了一个子菜单,不知道是哪里出问题了?
正确加载IDR_TRAYMENU的方式应该是怎么用的呢?
问题好像是在menu.TrackPopupMenu上,我这个菜单貌似不应该是Popup的,请教正确方法。。。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询