WM_USER 與 WM_APP

來源:互聯網
上載者:User


詳情參見百度百科



WM_USER常量是Windows輔助應用程式定義私人視窗類別裡的私人訊息,通常使用WM_USER+一個整數值,但總值不能超過0x7FFF。

#define WM_USER       0x0400
 
WM_USER定義在WinUser.h中。

範圍表示
 
0 ~ WM_USER–1
作業系統保留的訊息。
 
WM_USER ~ 0x7FFF
私人視窗類別用的整數型訊息。
 
WM_APP ~ 0xBFFF
應用程式用的訊息。
 
0xC000 ~ 0xFFFF
應用程式用的字串訊息。
 
0xFFFF ~
作業系統保留的訊息。表單底端
 

MFC在afxres.h中預定義了一些常用的控制條

#define AFX_IDW_TOOLBAR                 0xE800  // main Toolbar for window

#define AFX_IDW_STATUS_BAR              0xE801  // Status bar window

#define AFX_IDW_PREVIEW_BAR             0xE802  // PrintPreview Dialog Bar

#define AFX_IDW_RESIZE_BAR              0xE803  // OLE in-place resize bar

#define AFX_IDW_REBAR                   0xE804  // COMCTL32 "rebar" Bar

#define AFX_IDW_DIALOGBAR               0xE805  // CDialogBar
 



WM_USER  與 WM_APP#define WM_GET (WM_USER+112) 和 #define WM_GET (WM_APP+112)除了值不同外,有區別嗎?(1)WM_USER through 0x7FFF Integer messages for use by private window classes. WM_APP through 0xBFFF Messages
available for use by applications.
(2)預設規則是以WM_USER+X(WM_USER--0x7fff)用於視窗級的訊息,WM_APP+X(WM_APP--0xbfff)用於進程級的訊息.  (3)我的理解:第一種定義用於進程內訊息,第二種定義用於進程間訊息(4)約定俗成的一種規則。
 WM_USER through 0x7FFF: 僅在自己預定義的視窗內部使用;
 WM_APP through 0xBFFF: 在應用程式的其他地方均可使用
例一:如果程式的所有視窗和所有控制項完全由你一個人實現,你完全可以不遵守這一規則。
但若有其他人寫的代碼或載入了外來的控制項,如果你不遵守這一規則,發生衝突的機率會明顯加大,可能會出現意想不到的結果。
例二:這樣的:我的COM裡需要定義一個通知訊息,來通知應用程式為它填充緩衝,這個COM是一個進程內的COM,當我#define   WM_GET   (WM_USER+112)   時,通過測試30次,可能要失敗1次,用#define
  WM_GET   (WM_APP+112)時,30次全成功,但現在不敢肯定是它引起的,有可能其他地方還會有影響


  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.