VC6解决托盘菜单不消失
生活随笔
收集整理的這篇文章主要介紹了
VC6解决托盘菜单不消失
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CMenu menu;
menu.LoadMenu(IDR_MNU_TRAY); // 2
CMenu* pMenu=menu.GetSubMenu(0);
CPoint point;
GetCursorPos(&point);
SetForegroundWindow(); //解決托盤菜單不消失
pMenu->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
PostMessage(WM_NULL,0,0); //解決托盤菜單不消失
SDK里寫得很清楚地?
To ? display ? a ? context ? menu ? for ? a ? notification ? icon, ? the ? current ? window ? must ? be ? the ? foreground ? window ? before ? the ? application ? calls ? TrackPopupMenu ? or ? TrackPopupMenuEx. ? Otherwise, ? the ? menu ? will ? not ? disappear ? when ? the ? user ? clicks ? outside ? of ? the ? menu ? or ? the ? window ? that ? created ? the ? menu ? (if ? it ? is ? visible). ? However, ? when ? the ? current ? window ? is ? the ? foreground ? window, ? the ? second ? time ? this ? menu ? is ? displayed, ? it ? displays ? and ? then ? immediately ? disappears. ? To ? correct ? this, ? you ? must ? force ? a ? task ? switch ? to ? the ? application ? that ? called ? TrackPopupMenu ? at ? some ? time ? in ? the ? near ? future. ? This ? is ? done ? by ? posting ? a ? benign ? message ? to ? the ? window ? or ? thread, ? as ? shown ? in ? the ? following ? code ? sample: ??
Hide ? Example?
? ? ? SetForegroundWindow(hDlg);?
? ? ? // ? Display ? the ? menu?
? ? ? TrackPopupMenu( ? ? ? hSubMenu,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TPM_RIGHTBUTTON,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? pt.x,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? pt.y,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? hDlg,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NULL);?
? ? ? PostMessage(hDlg, ? WM_NULL, ? 0, ? 0);?
SDK里寫得很清楚地?
To ? display ? a ? context ? menu ? for ? a ? notification ? icon, ? the ? current ? window ? must ? be ? the ? foreground ? window ? before ? the ? application ? calls ? TrackPopupMenu ? or ? TrackPopupMenuEx. ? Otherwise, ? the ? menu ? will ? not ? disappear ? when ? the ? user ? clicks ? outside ? of ? the ? menu ? or ? the ? window ? that ? created ? the ? menu ? (if ? it ? is ? visible). ? However, ? when ? the ? current ? window ? is ? the ? foreground ? window, ? the ? second ? time ? this ? menu ? is ? displayed, ? it ? displays ? and ? then ? immediately ? disappears. ? To ? correct ? this, ? you ? must ? force ? a ? task ? switch ? to ? the ? application ? that ? called ? TrackPopupMenu ? at ? some ? time ? in ? the ? near ? future. ? This ? is ? done ? by ? posting ? a ? benign ? message ? to ? the ? window ? or ? thread, ? as ? shown ? in ? the ? following ? code ? sample: ??
Hide ? Example?
? ? ? SetForegroundWindow(hDlg);?
? ? ? // ? Display ? the ? menu?
? ? ? TrackPopupMenu( ? ? ? hSubMenu,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TPM_RIGHTBUTTON,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? pt.x,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? pt.y,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? hDlg,?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NULL);?
? ? ? PostMessage(hDlg, ? WM_NULL, ? 0, ? 0);?
總結
以上是生活随笔為你收集整理的VC6解决托盘菜单不消失的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端必读:浏览器内部工作原理
- 下一篇: Windows 下单机最大TCP连接数