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的,请教正确方法。。。
展开
 我来答
真白的纱雾d442c
2011-01-18 · TA获得超过1093个赞
知道小有建树答主
回答量:265
采纳率:0%
帮助的人:541万
展开全部
你的IDR_TRAYMENU是否是向导生成的顶级菜单?
如果是的话,需要使用GetSubMenu(0)获取其子菜单,子菜单才是可以用于托盘的弹出菜单(Popup属性为TRUE)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式