国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

VC實現動態菜單的創建方法

2020-01-26 15:28:56
字體:
來源:轉載
供稿:網友

本文簡述了在程序不支持MFC,CMenu不可用的情況下,動態創建系統托盤菜單的方法。由于菜單項是不確定的,因而就需要用 sdk 創建一個動態彈出菜單。

主要實現代碼如下:

//------------------ code begin ----------------//在類中定義的變量:// 雙擊托盤圖標時對應的菜單項 id.UINT m_nDClickMenuItemId;// 彈出菜單句柄.m_hMenu m_hMenu;///動態創建右鍵菜單項.///@param item_text 菜單項文本字符串,以逗號分隔.///@param dbclick_id 雙擊托盤圖標對應的菜單項id.// 調用示例:// create_menu("顯示/隱藏,退出", 40001);BOOL CTrayIconMenu::create_menu(char* item_text, unsigned int dbclick_id){  m_nDClickMenuItemId = dbclick_id;  // 動態創建彈出菜單  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;}///響應消息顯示菜單.LRESULT CTrayIconMenu::on_msg(WPARAM wid, LPARAM event){  // 一些其他處理代碼...  POINT mouse;  ::GetCursorPos(&mouse);  // hWnd 為應用程序主窗口句柄.  if (event == WM_RBUTTONUP)  {    ::SetForegroundWindow(hWnd);    ::TrackPopupMenu(m_hMenu, 0, mouse.x, mouse.y, 0, hWnd, NULL);  }  return 1;}//------------------ code end ----------------
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 庄河市| 鄱阳县| 陆川县| 华亭县| 临城县| 页游| 天柱县| 白朗县| 亚东县| 通化市| 泸溪县| 类乌齐县| 余姚市| 龙海市| 枣庄市| 桃江县| 兰溪市| 沈阳市| 开远市| 连城县| 开封县| 琼中| 新巴尔虎左旗| 井冈山市| 甘泉县| 乃东县| 临猗县| 东平县| 巫溪县| 通辽市| 溧水县| 瓮安县| 临沂市| 溧阳市| 兴海县| 洪湖市| 北川| 泾源县| 甘南县| 新乡县| 岳西县|