猿问

你好,求问一下关于this->getsafehwnd()?

HCURSOR CDataMsgMainDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}

void CDataMsgMainDlg::OnButton1()
{
HWND hwnd=::FindWindow(NULL,"DataMsgClient");
if(hwnd==NULL)
{
AfxMessageBox("没有找到接受窗体");
return;
}
CString msgedit;
GetDlgItem(IDC_EDIT1)->GetWindowText(msgedit);
COPYDATASTRUCT data = {0};
data.dwData = (DWORD)this->GetSafeHwnd();
data.cbData = msgedit.GetLength();
data.lpData = msgedit.GetBuffer(msgedit.GetLength());
::SendMessage(hwnd, WM_COPYDATA, (WPARAM)this->GetSafeHwnd(), (LPARAM)&data);

}

COPYDATASTRUCT 结构中的dwData成员是接收数据的句柄.我想问的是data.dwData = (DWORD)this->GetSafeHwnd();这句里的this是指代什么??
WPARAM)this->GetSafeHwnd(), 里面的this又是什么呢?
照二位兄台的说法,data.dwData获得了这个对话框的句柄???和接收数据又是啥关系哟

SMILET
浏览 286回答 2
2回答

慕虎7371278

这两个this是一样的,都代表由CDataMsgMainDlg定义的对象实例的指针!一般都不写,当然写了也没错!比如:用CDataMsgMainDlg定义一个实例CDataMsgMainDlg dlg;此时的this 就等于指向dlg的指针,即 this == &dlg;//是获取了对话框的句柄!和接受数据的关系,根据以上代码看不出来!

喵喔喔

在哪个类实例里面,this就代表这个类实例自身的指针
随时随地看视频慕课网APP
我要回答