2

在我的 MFC 应用程序中,我有一个需要访问窗口句柄的非 Dlg 成员函数,但由于它不是成员函数,我不能使用“this”指针。

具体来说,这就是我的意思:

void BlahDlg::OnBnClickedblah()
{
    //whatever
    //...

    CClientDC dc(this);

    //...
    //whatever
}

^ 效果很好。但我使用的是非成员函数:

void nonMember()
{
    //whatever
    //...

    CClientDC dc(this); //will not work!

    //...
    //whatever
}

所以我的问题是:我可以在后一段代码中用什么替换“this”,使其具有与前者相同的效果。

4

1 回答 1

4

只需要传递this给一个非成员函数,这样的非成员函数应该有一个对应的参数。例如:

void nonMember(BlahDlg* dlg) {
  ...
  CClientDC dc(dlg);
  ...
}
于 2013-02-13T20:56:08.697 回答