對于在資源文件中加入的控件, 只能在對話框的WM_INITDIALOG中通過 hChildWnd=GetDlgItem(hDlg, ID_xxx); SetWindowLong(hChildWnd, GWL_USERDATA, (LONG)pData); 加入額外的數據。
如果是自己手工創建的控件,創建時就可傳入必要的數據,通過超類化在WM_CREATE中將數據保存。 ===================================== 這樣一來,對話框里的子窗口控制將仍然無法獲得WM_CREATE消息, 因為我想要的超類的窗口過程是個通用的,通過額外的參數來辨識是哪個窗口對象, 從而把消息先交該窗口對象處理,再調用原系統窗口過程,這樣就更 hChildWnd=GetDlgItem(hDlg, ID_xxx); SetWindowLong(hChildWnd, GWL_USERDATA, (LONG)pData);的時候已經錯過了WM_CREATE消息
|