Win32 Windows編程 八

來源:互聯網
上載者:User

標籤:win32   編程   windows   sdk   mfc   

一、系統功能表

1 執行從系統提供的視窗命令,例如最大化、關閉等命令。本質上和普通菜單一樣,所以我們也可以在程式中使用這個菜單

2 系統功能表的使用

2.1 擷取系統功能表

GetSystemMenu

HMENU GetSystemMenu(

HWND hWnd, //要擷取的視窗控制代碼

BOOL bRevert; //擷取重設標識

);

bRevert: TRUE 重設 FALSE 不重設

當為TRUE時 會將菜單重設成預設狀態,並返回菜單控制代碼,為false功能表項目不重設, 擷取當前系統功能表的狀態

2.2 修改系統功能表, 例如增加、 刪除 

AppendMenu

InsertMenu

比AppendMenu增加了一個插入功能表項目的位置

RemoveMenu

刪除功能表項目

2.3 系統功能表的響應命令

系統功能表的響應命令,實在WM_SYSCOMMAND 中

WPARAm - LOWORD( wParam )為增加菜單的ID

二、右鍵菜單

1 當在視窗點擊右鍵時,彈出的菜單。

2 右鍵菜單的使用

2.1 建立菜單

CreatePopMenu

2.2 菜單增加

AppendMenu / InsertMenu

2.3 菜單的顯示

TrackPopupMenu

BOOL TrackPopupMenu(  HMENU hMenu,         // handle to shortcut menu  UINT uFlags,         // options  int x,               // horizontal position  int y,               // vertical position  int nReserved,       // reserved, must be zero  HWND hWnd,           // handle to owner window  CONST RECT *prcRect  // ignored);


2.4 菜單的命令處理

WM_COMMAND 

2.5 使用右鍵菜單的位置

2.5.1 WM_RBUTTONUP中添加菜單的建立和顯示

右鍵訊息座標轉換成螢幕座標使用 - ClientToScreen

2.5.2 WM_CONTEXTMENU 

用於顯示右鍵的菜單的訊息

WPARAM  - 右鍵抬起時對應的視窗控制代碼

LPARAM  - 右鍵抬起時的螢幕座標

2.5.3 WM_RBUTTONUP 和 WM_CONTEXTMENU對比

1) 座標系不同,WM_RBUTTONUP 客戶區座標 WM_CONTEXTMENU 螢幕座標

2)WM_RBUTTONUP 先於 WM_CONTEXTMENU執行


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.