在我的MFC应用程序中,我有一个需要访问窗口句柄的非Dlg成员函数,但由于它不是成员函数,所以我不能使用“this”指针。
具体来说,这就是我的意思:
void BlahDlg::OnBnClickedblah()
{
//whatever
//...
CClientDC dc(this);
//...
//whatever
}
^工作正常。但我使用的是非会员功能:
void nonMember()
{
//whatever
//...
CClientDC dc(this); //will not work!
//...
//whatever
}
所以我的问题是:我可以用后一段代码替换'this',这将使它与前者具有相同的效果。
答案 0 :(得分:4)
只需要将this
传递给非成员函数,这样的非成员函数应该具有相应的参数。例如:
void nonMember(BlahDlg* dlg) {
...
CClientDC dc(dlg);
...
}