最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VC實(shí)現(xiàn)動(dòng)態(tài)菜單的創(chuàng)建方法

 更新時(shí)間:2014年07月16日 11:13:39   投稿:shichen2014  
這篇文章主要介紹了VC實(shí)現(xiàn)動(dòng)態(tài)菜單的創(chuàng)建方法,需要的朋友可以參考下

本文簡(jiǎn)述了在程序不支持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 ----------------

相關(guān)文章

最新評(píng)論

台前县| 宣威市| 远安县| 长顺县| 洪泽县| 绍兴县| 保亭| 郑州市| 白山市| 张掖市| 庆安县| 扶沟县| 南雄市| 桐梓县| 盐津县| 深水埗区| 新巴尔虎右旗| 余干县| 延津县| 汝城县| 韶关市| 建宁县| 梅河口市| 确山县| 普兰店市| 呼伦贝尔市| 浦北县| 莒南县| 安达市| 广德县| 郯城县| 平南县| 图木舒克市| 淮安市| 平舆县| 八宿县| 西吉县| 天等县| 新源县| 天峨县| 威信县|