我是参照例子来做的ON_MESSAGE(WM_SHOWTASK,OnTrayICONTask)  //托盘的相应消息
LRESULT OnTrayICONTask(WPARAM wParam, LPARAM lParam);
LRESULT CTest::OnTrayICONTask(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;1、打算在托盘图标上感应到右键就弹出一个菜单,这个例子的菜单是一个AppendMenu方法写出来的参数,貌似第二个参数只能是消息,如果是打算执行一个函数的话,应该怎么做?2、如果已经有现成做好一个比较复杂的IDR_TrayMenu,这个MAKEINTRESOURCE应该怎么在这里被调用?
之前问过高手,据说要用“GetSubMenu(0)获取其子菜单”的方法来做,貌似第顶层的那个菜单是不起效的,
我用了
menu.LoadMenu(IDR_TrayMenu);
SetMenu(&menu);
来执行,但似乎IDR菜单显示得很怪异,不知道怎么搞的,
能请高手点明错误吗?