VC實(shí)現(xiàn)動態(tài)菜單的創(chuàng)建方法
更新時間:2014年07月16日 11:13:39 投稿:shichen2014
這篇文章主要介紹了VC實(shí)現(xiàn)動態(tài)菜單的創(chuàng)建方法,需要的朋友可以參考下
本文簡述了在程序不支持MFC,CMenu不可用的情況下,動態(tài)創(chuàng)建系統(tǒng)托盤菜單的方法。由于菜單項是不確定的,因而就需要用 sdk 創(chuàng)建一個動態(tài)彈出菜單。
主要實(shí)現(xiàn)代碼如下:
//------------------ code begin ----------------
//在類中定義的變量:
// 雙擊托盤圖標(biāo)時對應(yīng)的菜單項 id.
UINT m_nDClickMenuItemId;
// 彈出菜單句柄.
m_hMenu m_hMenu;
///動態(tài)創(chuàng)建右鍵菜單項.
///@param item_text 菜單項文本字符串,以逗號分隔.
///@param dbclick_id 雙擊托盤圖標(biāo)對應(yīng)的菜單項id.
// 調(diào)用示例:
// create_menu("顯示/隱藏,退出", 40001);
BOOL CTrayIconMenu::create_menu(char* item_text, unsigned int dbclick_id)
{
m_nDClickMenuItemId = dbclick_id;
// 動態(tài)創(chuàng)建彈出菜單
m_hMenu = ::CreatePopupMenu();
if (m_hMenu == NULL) {
return 0;
}
int i=0;
int msgid=40001; // 第一項菜單項的消息id.
BOOL ret = 0;
char * pText = ::strtok(item_text, ",");
while( pText != NULL ) {
ret = ::AppendMenu(m_hMenu, MF_ENABLED | MF_STRING, msgid + i, pText);
pText = ::strtok( NULL, "," );
i++;
}
return 1;
}
///響應(yīng)消息顯示菜單.
LRESULT CTrayIconMenu::on_msg(WPARAM wid, LPARAM event)
{
// 一些其他處理代碼...
POINT mouse;
::GetCursorPos(&mouse);
// hWnd 為應(yīng)用程序主窗口句柄.
if (event == WM_RBUTTONUP) {
::SetForegroundWindow(hWnd);
::TrackPopupMenu(m_hMenu, 0, mouse.x, mouse.y, 0, hWnd, NULL);
}
return 1;
}
//------------------ code end ----------------
您可能感興趣的文章:
- VC創(chuàng)建DLL動態(tài)鏈接庫的方法
- VC創(chuàng)建進(jìn)程CreateProcess的方法
- VC++創(chuàng)建msi文件的方法
- MVC 5 第一章 創(chuàng)建MVC 5 web應(yīng)用程序
- c#創(chuàng)建vc可調(diào)用的com組件方法分享
- MVC后臺創(chuàng)建Json(List)前臺接受并循環(huán)讀取實(shí)例
- 解析VC中創(chuàng)建DLL,導(dǎo)出全局變量,函數(shù)和類的深入分析
- VC6.0如何創(chuàng)建以及調(diào)用動態(tài)鏈接庫實(shí)例詳解
- VC創(chuàng)建圓角dialog的實(shí)現(xiàn)方法
相關(guān)文章
C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配
C++ 不允許變量重名,但是允許多個函數(shù)取相同的名字,只要參數(shù)表不同即可,這叫作函數(shù)的重載,下面這篇文章主要給大家介紹了關(guān)于C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配的相關(guān)資料,需要的朋友可以參考下2019-01-01
C++實(shí)現(xiàn)json形式的Socket傳輸圖片
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)json形式的Socket傳輸圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03
C++運(yùn)算符重載實(shí)例代碼詳解(調(diào)試環(huán)境 Visual Studio 2019)
這篇文章主要介紹了C++運(yùn)算符重載實(shí)例(調(diào)試環(huán)境 Visual Studio 2019),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
C++ 中CloseHandle 函數(shù)--關(guān)閉一個句柄
這篇文章主要介紹了C++ 中CloseHandle 函數(shù)--關(guān)閉一個句柄的相關(guān)資料,需要的朋友可以參考下2017-05-05
C語言中判斷兩個IPv4地址是否屬于同一個子網(wǎng)的代碼
這篇文章主要介紹了C語言中判斷兩個IPv4地址是否屬于同一個子網(wǎng)的代碼,需要的朋友可以參考下2017-09-09
C++?opencv實(shí)現(xiàn)在圖片上畫一條線示例代碼
這篇文章主要為大家介紹了C++?opencv實(shí)現(xiàn)在圖片上畫一條線的示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

