日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows菜单

發布時間:2025/3/15 windows 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows菜单 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

1 Windows菜單????1

1.1 窗口菜單和彈出菜單????1

1.2 使用SetMenu????2

1.3 使用TrackPopupMenu????4

?

?

1 Windows菜單

1.1 窗口菜單和彈出菜單

Windows菜單分為兩類:窗口菜單和彈出菜單。窗口菜單主要用來放在某個窗口上。彈出菜單有兩個作用,一是鼠標右鍵單擊時顯示的菜單;二是作為子菜單添加到窗口菜單。

打開"記事本"程序,右鍵菜單就是一個彈出菜單:

1.1 彈出菜單

"記事本"程序的菜單欄部分就是一個窗口菜單,它又包含了"文件""編輯"……這些彈出菜單。

1.2 窗口菜單

窗口菜單由CreateMenu創建,使用SetMenu將其設置到某個窗口,使用DestroyMenu銷毀。

彈出菜單由CreatePopupMenu創建,使用AppendMenuInsertMenuItem將其添加到窗口菜單或上一級彈出菜單,也可以使用TrackPopupMenu顯示彈出菜單。彈出菜單的銷毀同樣是調用DestroyMenu函數。

1.2 使用SetMenu

下面以代碼的方式創建圖1.2所示的窗口菜單:

//創建窗口菜單

HMENU hMenuWnd = ::CreateMenu();

{//創建"文件"彈出菜單,并將其添加到窗口菜單

//創建"文件"菜單,這是一個彈出菜單

HMENU hMenuFile = ::CreatePopupMenu();

//"文件"菜單添加"新建"菜單項,0x8000是菜單項ID

::AppendMenu(hMenuFile,MF_STRING,0x8000,_T("新建"));

//"文件"菜單添加"打開"菜單項

::AppendMenu(hMenuFile,MF_STRING,0x8001,_T("打開"));

//"文件"菜單添加一條分隔線

::AppendMenu(hMenuFile,MF_SEPARATOR,0,NULL);

//繼續給"文件"菜單添加菜單項

... ... ... ...

//將整個"文件"菜單添加到窗口菜單

::AppendMenu(hMenuWnd,MF_POPUP,(UINT)hMenuFile,_T("文件"));

}

{//創建"編輯"彈出菜單,并將其添加到窗口菜單

//創建"編輯"菜單,這是一個彈出菜單

HMENU hMenuEdit = ::CreatePopupMenu();

//"編輯"菜單添加菜單項

... ... ... ...

//將整個"編輯"菜單添加到窗口菜單

::AppendMenu(hMenuWnd,MF_POPUP,(UINT)hMenuEdit,_T("編輯"));

}

{//創建"格式"彈出菜單,并將其添加到窗口菜單

... ... ... ...

}

{//創建"查看"彈出菜單,并將其添加到窗口菜單

... ... ... ...

}

{//創建"幫助"彈出菜單,并將其添加到窗口菜單

... ... ... ...

}

//將窗口菜單設置到窗口上

::SetMenu(hWnd,hMenuWnd);

代碼說明:

1SetMenu的第二個參數必須是窗口菜單句柄,即這個句柄必須由CreateMenu函數創建,而不能是CreatePopupMenu創建的彈出菜單句柄。

2::AppendMenu(hMenuWnd,MF_POPUP,(UINT)hMenuFile,_T("文件"));將彈出菜單hMenuFile添加到窗口菜單hMenuWnd。它只是把hMenuFile這個句柄添加到hMenuWnd所維護的數據結構里,即它添加的只是彈出菜單的一個引用,并不是把彈出菜單的所有菜單項添加到窗口菜單。因此,可以先將hMenuFile添加到hMenuWnd,再給hMenuFile添加菜單項,如下面的代碼所示:

{//創建"文件"彈出菜單,并將其添加到窗口菜單

//創建"文件"菜單,這是一個彈出菜單

HMENU hMenuFile = ::CreatePopupMenu();

//將整個"文件"菜單添加到窗口菜單

::AppendMenu(hMenuWnd,MF_POPUP,(UINT)hMenuFile,_T("文件"));

//"文件"菜單添加"新建"菜單項,0x8000是菜單項ID

::AppendMenu(hMenuFile,MF_STRING,0x8000,_T("新建"));

... ... ... ...

}

3DestroyMenu(hMenuWnd)將銷毀它的子菜單、孫菜單。也就是說執行DestroyMenu(hMenuWnd)之后,hMenuFilehMenuEdit……也被銷毀了。上面的代碼里,在::SetMenu(hWnd,hMenuWnd);之前增加如下測試代碼:

DestroyMenu(hMenuWnd);

hMenuWnd = ::CreateMenu();

::AppendMenu(hMenuWnd,MF_POPUP,(UINT)hMenuFile,_T("文件"));

DestroyMenu(hMenuWnd);將銷毀hMenuWndhMenuFile,所以AppendMenu將會增加無效的hMenuFilehMenuWnd。可以想象,"文件"菜單里是不會有菜單項的。

4、何時調用DestroyMenu(hMenuWnd)銷毀窗口菜單呢?應該是不再使用時銷毀,具體的就是在處理窗口的WM_DESTROY消息時銷毀,或者在SetMenu更換菜單后銷毀。

1.3 使用TrackPopupMenu

上一節的代碼里包含了彈出菜單的創建,并增加到窗口菜單。彈出菜單還有一個作用就是用來顯示圖1.1所示的右鍵彈出菜單,方法就是調用TrackPopupMenu函數。需要注意的是:TrackPopupMenu的第一個參數必須是一個彈出菜單的句柄,就是說它必須由CreatePopupMenu創建。

以上一節的代碼為例:

//可以顯示出彈出菜單

TrackPopupMenu(hMenuFile,...);

//無法顯示彈出菜單,因為hMenuWnd是一個窗口菜單,不是彈出菜單

TrackPopupMenu(hMenuWnd,...);

//GetSubMenu(hMenuWnd,0) 返回的其實就是hMenuFile

//因此下面的代碼可以正常顯示彈出菜單

TrackPopupMenu(GetSubMenu(hMenuWnd,0),...);

當使用LoadMenu從資源里載入菜單時,其返回的是一個窗口菜單句柄,直接傳遞給TrackPopupMenu是無法正常顯示的。必須使用GetSubMenu獲得窗口菜單里的彈出菜單句柄,才能正常調用TrackPopupMenu

執行TrackPopupMenu之后,可以立即調用DestroyMenu銷毀菜單。

轉載于:https://www.cnblogs.com/hanford/p/6163690.html

總結

以上是生活随笔為你收集整理的Windows菜单的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧洲最强rapper网站直播 | aaa天堂| 成年免费在线观看 | 无码人妻一区二区三区av | 黄色av小说在线观看 | 诱夫1v1高h | 在线观看网站污 | 国产在线拍揄自揄拍无码视频 | 成人在线直播 | 日本黄色三级网站 | 成人做爰视频www | 日韩综合一区二区三区 | 国产精品18久久久 | 911毛片| 亚洲国产欧美在线人成 | 午夜精品视频在线观看 | 无码一区二区精品 | 中文字幕一区二区三区5566 | 国产chinese男男gaygay视频 | 色综合99久久久无码国产精品 | 国产精品久久久久毛片大屁完整版 | 欧美激情亚洲 | 91午夜免费视频 | 名校风暴在线观看免费高清完整 | 亚洲黄色小说图片 | 一区二区自拍偷拍 | 日本精品视频一区二区三区 | 色婷婷久久久亚洲一区二区三区 | 天天视频天天爽 | 麻豆app在线观看 | 凹凸日日摸日日碰夜夜 | 欧美精品自拍 | 国产又黄又湿 | 九九热视频在线观看 | 91玉足脚交白嫩脚丫 | 特级西西444www大胆免费看 | 日日噜噜夜夜狠狠久久丁香五月 | 在线观看日韩一区 | 日韩欧美少妇 | 一区二区日本视频 | 国产夫妻自拍小视频 | 午夜蜜桃视频 | 女同互舔视频 | 白嫩初高中害羞小美女 | 中文字幕在线高清 | 亚洲图片中文字幕 | 日韩va亚洲va欧美va久久 | 久久人人视频 | 国产精品丝袜视频 | 精品少妇人妻一区二区黑料社区 | 青青操免费在线视频 | 最好看的2019中文大全在线观看 | 国语对白一区 | 日韩最新av | 超碰精品在线 | 久色88| 亚洲视频天堂 | xxx69美国 | 中文字幕日韩欧美一区二区 | 秋霞午夜鲁丝一区二区老狼 | 亚洲一区二区观看 | 我们俩电影网mp4动漫官网 | 国产一级伦理片 | 成人aaa视频 | 久久99热这里只频精品6学生 | 亚洲精品高清无码视频 | 国产毛片精品国产一区二区三区 | 少妇高潮一区二区三区 | 成人欧美一区二区三区在线播放 | 久久老司机 | 国产寡妇亲子伦一区二区三区四区 | 日韩av在线一区二区 | 日本人妻换人妻毛片 | 成人高潮片免费视频 | 久久久久久久国产 | 中文字幕免费观看视频 | 日本一级一片免费视频 | 日韩精品网址 | 日韩精品视频在线播放 | 99热只有这里有精品 | 久久精品一区二区三 | 爱搞逼综合| 成人h片 | 久久网站av | 日皮毛片| 在线免费看污视频 | 奶水旺盛的女人伦理 | 三级不卡视频 | 又污又黄又爽的网站 | 日韩欧美理论片 | 狠狠影院 | 熟妇人妻中文av无码 | 国产日日夜夜 | 在线看成人av | 嫩草视频在线观看 | 欧美日韩成人 | 国产911视频 | 国产妇女馒头高清泬20p多 | 欧美日韩另类在线 |