对于在资源文件中加入的控件, 只能在对话框的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消息
|