2

私の MFC アプリケーションには、ウィンドウ ハンドルにアクセスする必要がある非 Dlg メンバー関数がありますが、これはメンバー関数ではないため、"this" ポインターを使用できません。

具体的には、ここに私が意味するものがあります:

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

    CClientDC dc(this);

    //...
    //whatever
}

^それはうまくいきます。しかし、私は非メンバー関数を使用しています:

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

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

    //...
    //whatever
}

だから私の質問は、前者と同じ効果を持つ後者のコードで「これ」を何に置き換えることができるかということです。

4

1 に答える 1

4

単に非メンバー関数に渡す必要がありthis、そのような非メンバー関数には対応するパラメーターが必要です。例えば:

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