關於Windows選單的使用和注意事項

2021-10-09 08:33:08 字數 760 閱讀 6923

有兩個win32 api可以用來建立選單:

> createmenu

> createpopupmenu

createmenu會建立乙個橫向的選單欄,用來掛接到乙個頂層視窗上,我們平常在視窗頂部看到的類似於」檔案」, 「編輯」等選單,就是用這個createmenu建立的。

createpopupmenu和createmenu不同,它主要用來建立乙個縱向的彈出式選單,它適用於顯示乙個上下文選單或者作為其他選單(可能是乙個橫向選單或者另外乙個彈出式選單)的乙個子選單。

如果你沒注意到它們兩個之間的區別,你可能會碰到一些比較奇怪的選單行為。

windows在某些極少見的情況下會理解開發者的誤用並盡最大努力來將錯誤的呼叫轉為正確的版本,但是,我可不敢把賭注放在這個上。

我們沒有辦法從乙個選單物件中得知它是乙個橫向還是縱向的。

當乙個選單被銷毀後,整個選單樹都會被銷毀,也就是說,所有的子選單,或者子選單的子選單,都會被銷毀。

當你銷毀乙個選單的時候,最好別是其他選單的子選單,否則會導致其他選單的子選單變為無效狀態,進而產生一些難以捉摸的問題。

如果你從父選單上移除某個子選單,你就需要負責釋放這個子選單,因為當子選單被從父選單上移除時,子選單無論如何也不會隨著父選單的銷毀而自動銷毀。

乙個選單可以作為多個選單的子選單,這個是雖然是合理的,但是要特別小心,因為如果其中乙個父選單銷毀了,它所有的子選單也會隨之銷毀,這樣,其他父視窗就會持有乙個不再有效的子選單了。

在windows xp上,選單巢狀被

Windows選單的建立

1.建立乙個win32的空工程,然後新增乙個主檔案source.cpp include windows.h include header.h include tchar.h hmenu hmenu,haddmenu 定義選單控制代碼 lresult callback wndproc hwnd,uin...

關於Windows訊息的分類和使用場景

在windows開發中,我們經常會使用的自定義訊息,關於這個訊息的數值選取,還是有點講究的,今天就來具體看看 免得又掉溝裡了 windows訊息,可以分為如下幾類 這類訊息是被作業系統定義並使用的訊息。我們盡量不要在這個範圍內定義我們自己的訊息,因為它們會被作業系統使用並識別訊息的wparam和lp...

windows關於Git工具的使用

第一步 1 git init 這個命令會在當前目錄下建立乙個.git資料夾。第二步 1 git add.這個命令會把當前路徑下的所有檔案,新增到待上傳的檔案列表中。第三步 1 git commit m xx 1 git remote add origin https 使用者名稱 github專案名....