VC實(shí)現(xiàn)動(dòng)態(tài)菜單的創(chuàng)建方法
本文簡述了在程序不支持MFC,CMenu不可用的情況下,動(dòng)態(tài)創(chuàng)建系統(tǒng)托盤菜單的方法。由于菜單項(xiàng)是不確定的,因而就需要用 sdk 創(chuàng)建一個(gè)動(dòng)態(tài)彈出菜單。
主要實(shí)現(xiàn)代碼如下:
//------------------ code begin ---------------- //在類中定義的變量: // 雙擊托盤圖標(biāo)時(shí)對(duì)應(yīng)的菜單項(xiàng) id. UINT m_nDClickMenuItemId; // 彈出菜單句柄. m_hMenu m_hMenu; ///動(dòng)態(tài)創(chuàng)建右鍵菜單項(xiàng). ///@param item_text 菜單項(xiàng)文本字符串,以逗號(hào)分隔. ///@param dbclick_id 雙擊托盤圖標(biāo)對(duì)應(yīng)的菜單項(xiàng)id. // 調(diào)用示例: // create_menu("顯示/隱藏,退出", 40001); BOOL CTrayIconMenu::create_menu(char* item_text, unsigned int dbclick_id) { m_nDClickMenuItemId = dbclick_id; // 動(dòng)態(tài)創(chuàng)建彈出菜單 m_hMenu = ::CreatePopupMenu(); if (m_hMenu == NULL) { return 0; } int i=0; int msgid=40001; // 第一項(xiàng)菜單項(xiàng)的消息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動(dòng)態(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后臺(tái)創(chuàng)建Json(List)前臺(tái)接受并循環(huán)讀取實(shí)例
- 解析VC中創(chuàng)建DLL,導(dǎo)出全局變量,函數(shù)和類的深入分析
- VC6.0如何創(chuàng)建以及調(diào)用動(dòng)態(tài)鏈接庫實(shí)例詳解
- VC創(chuàng)建圓角dialog的實(shí)現(xiàn)方法
相關(guān)文章
快速了解C語言靜態(tài)關(guān)鍵字static的作用
這篇文章主要介紹了C語言中靜態(tài)關(guān)鍵字static的作用,對(duì)大家學(xué)習(xí)C語言非常有幫助,有需求的小伙伴可以參考下2020-05-05C語言數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(AVL樹)實(shí)現(xiàn)方法示例
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(AVL樹)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了C語言平衡二叉樹的相關(guān)定義與使用技巧,需要的朋友可以參考下2018-01-01C++實(shí)現(xiàn)LeetCode(16.最近三數(shù)之和)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(16.最近三數(shù)之和),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07Qt動(dòng)態(tài)庫調(diào)用宿主進(jìn)程中的對(duì)象方法純虛函數(shù)使用
這篇文章主要為大家介紹了Qt動(dòng)態(tài)庫調(diào)用宿主進(jìn)程中的對(duì)象方法純虛函數(shù)使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08C/C++實(shí)現(xiàn)快速排序算法的兩種方式實(shí)例
快速排序是一種采用分治思想,在實(shí)踐中通常運(yùn)行較快一種排序算法,這篇文章主要給大家介紹了關(guān)于C/C++實(shí)現(xiàn)快速排序的兩種方式的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下2021-08-08