处理当前窗口而不使用“this”?

时间:2013-02-13 20:25:25

标签: c++ mfc this

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

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

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

    CClientDC dc(this);

    //...
    //whatever
}

^工作正常。但我使用的是非会员功能:

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

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

    //...
    //whatever
}

所以我的问题是:我可以用后一段代码替换'this',这将使它与前者具有相同的效果。

1 个答案:

答案 0 :(得分:4)

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

void nonMember(BlahDlg* dlg) {
  ...
  CClientDC dc(dlg);
  ...
}