|
|
C++中采用API创建窗口回调函数如何获取自定义窗口类this指针 |
作者:洛羽叶 点击率:2574 发布时间:2012-12-06 |
//创建窗口
hInst=::GetModuleHandleA("TEST.DLL");
hWnd=::CreateDialogA(hInst,MAKEINTRESOURCEA(IDD_LOGWINDOW),NULL,(DLGPROC)DialogProc);
//存放this指针
::SetDlgItemInt(hWnd,IDC_THIS,(unsigned long)this,TRUE);
//IDC_THIS是窗口资源上的一个EDIT CONTROL组件,用以存放this指针地址
LRESULT CALLBACK MyWindow::DialogProc(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam)
{
MyWindow *pThis=GetThis();
}
//获取this指针
MyWindow* MyWindow::GetThis(HWND hDlg)
{
MyWindow *pThis=NULL;
pThis=( MyWindow *)(unsigned long)::GetDlgItemInt(hDlg,IDC_THIS,NULL,FALSE);
return pThis;
}
//此方法简单易行,如果窗口资源非自己控制,可以动态创建一个EDIT CONTROL控件在窗口上存放this指针。
|
|
|
|
|
|