いつもお世話になります。
MDIで子ウィンドウが複数あり、メニューを選択したときに
ある子ウィンドウをアクティブにしたいのですがうまくいきません。
CFrameWnd::SetActiveView()を使ったところ、
キーボードの入力などはその指定した子ウィンドウに届いてるようなのですが
他の子ウィンドウの下に隠れたままだし、見た目がぜんぜんアクティブになっていません。
CWnd::SetActiveWindow()やCWnd::SetFocus()なども試したのですが
どれも思い通りにいきませんでした。
何かいい方法があればおしえてください。
お願いします。
Windows 2000
VC++ 6.0
MFC
CWnd::SetForegroundWindow()では?
子ウィンドウのViewに対してCMainFrameから
m_pTestView->SetForegroundWindow() ;
とやっても何の反応もありませんでした。
Viewに対してやってもだめなのでしょうか。。。
ViewはMDIの枠の中に張り付いているウィンドウなので、
枠そのものをアクティブにするには、
m_pTestView->GetParent()->何か();
とします。
なるほど。
でも↓これでもやっぱり反応ないです。。。
m_pTestView->GetParent()->SetForegroundWindow() ;
m_pTestView->GetParent()->SetActiveWindow() ;
というのもやってみましたがやっぱりだめです。
MDIのMainFrameの基本クラスは、CMDIFrameWndでしょう?
なら、CMDIFrameWnd::MDIActivate()じゃないでしょうか?
外していたら、ごめんなさい。
((CMDIChildWnd*)m_pTestView->GetParent())->MDIActivate() ;
でうまくいきました。
dairygoodsさん、どとうさん、どうもありがとうございました。