古詩詞大全網 - 成語經典 - VC++ win32 application裏如何建壹個子窗口

VC++ win32 application裏如何建壹個子窗口

從WINDOWS系統的窗口機制上來說需要至少三步:

1、註冊窗口類

2、利用CreateWindow/CreateWindowEx() API 創建窗口

3、實現窗口類中的定義的消息事件的回調函數。

如果是創建已經註冊好的窗口(比如系統提供的壹些窗口類型,編輯框、樹形列表等)無須註冊窗口類,直接通過CreateWindowEx() 進行創建,也無須處理窗口的事件消息。 如果需要自己處理這些消息,那麽就是所謂的子類化或超類化的技術概念了。

如果是實現對話框,則比較簡單。 對話框是壹個特殊的窗口類型,需要現在資源中定義壹個對話框模板,然後通過DialogBoxParam/DialogBoxIndirectParam()等API直接創建就可以了。

從實現上來說:

1、SDK 編程, 那麽需要按需求手動編碼,依據需要處理這幾個步驟

2、基於ATL框架, 直接創建壹個基於CWindowImpl<> 模板類,繼承實現壹個類實例來處理消息鏈。 然後在需要的地方直接創建壹個類實例,調用類實例的Create() 方法就成。

3、基於MFC框架,直接創建壹個基於CWnd/CDialog類,繼承實現類實例,來處理消息鏈。原理同ATL類似,無非是實現方式不大壹樣。

基於ATL/MFC框架都可以通過VS的向導進行創建,原理是壹樣的,無非就是省卻大部分手動敲碼的過程。