いきなりですが、ウインドウを最前面にする処理について教えてください。
VC++のMFCでダイアログベースでプログラムを作っています。
最前面処理をするには、SetWindowPosでZオーダをかえることはわかったのですが、あるウインドウ名をもつウインドウを指定して、そのウインドウを最前面するやり方を教えてください。ちなみにopenCVで作成したウインドウを最前面にしたいです。
SetWindowPosだけだと、ダイアログが最前面にきてしまいます。
ほしいウインドウハンドルを取得してSetWindowPosを使うと思うのですが関連がわかりません。初心者ですがどうぞよろしくお願いします。
FindWindowで対象ウィンドウを探して、SetWindowPosで最前面にする。
ダイアログのメソッド内のコードであれば
CWnd* pTargetWnd = this->FindWindow(_T("対象のウィンドウクラス名"), _T("対象のウィンドウタイトル"))
if (pTargetWnd != NULL )
{
pTargetWnd->SetWindowPos( // 省略
}
「対象のウィンドウクラス名」はSpy++等で調べてください。
ウィンドウタイトルが一意であれば、NULLでもいいけど。
Blue様さっそく解答ありがとうございました。
おかげさまで問題を解決することができました。
FindWindowとSetWindowPosのつながりを少しだけ理解することが出来ました。もっと勉強せねば・・・・。
本当にありがとうございました。
ツイート | ![]() |