托盘图标及托盘菜单-问题及解决方案-编程-经验

1.托盘菜单关闭不了-点击空白处托盘菜单无法关闭

解决方案:在 PopupMenu 语句前加上 SetForegroundWindow Me.hwnd

例如:


if (LOWORD(lParam) == WM_RBUTTONUP)
{
HMENU hMenu = LoadMenu(This->Instance, MAKEINTRESOURCE(This->NotifyIconData.uID));
if (hMenu != NULL)
{
HMENU hSubMenu = GetSubMenu(hMenu, 0);
if (hSubMenu != NULL)
{
POINT pt;
LPCTSTR lpszText = NULL;
UINT EnableAPS =  MF_BYCOMMAND | MF_DISABLED | MF_GRAYED;
TCHAR MenuTitle[128];


if(g_bStart)
{
EnableMenuItem(hSubMenu, ID_APS_CONFIG, MF_ENABLED);


} else {


EnableMenuItem(hSubMenu, ID_APS_CONFIG, MF_DISABLED);
}
GetCursorPos(&pt);


switch (This->ApsDeviceState)
{
default:
case APS_STATE_DISABLED:
case APS_STATE_UNKNOWN:
LoadString(This->Instance, IDS_ENABLE_APS, MenuTitle, ARRAYSIZE(MenuTitle));
break;


case APS_STATE_ENABLED:
LoadString(This->Instance, IDS_DISABLE_APS, MenuTitle, ARRAYSIZE(MenuTitle));
break;
}


if (This->ApsDeviceState == APS_STATE_ENABLED ||
This->ApsDeviceState == APS_STATE_DISABLED)
{
EnableAPS = MF_BYCOMMAND | MF_ENABLED;
}


ModifyMenu(hSubMenu, ID_APS_ENABLE, MF_BYCOMMAND, ID_APS_ENABLE, MenuTitle);


EnableMenuItem(hSubMenu, ID_APS_ENABLE, EnableAPS);
SetForegroundWindow(hWnd);//没有这句菜单不能自动消除
TrackPopupMenu(hSubMenu, TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, 0, This->hMainWnd, NULL);
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值