2012-01-13 10 views
4

VC++でアプリケーションを作成した場合、エラーが発生した場合、MessageBoxが表示されます。そのMessageBoxは前面に表示されません。私はALTキーを押して、そのアプリケーションの前になる必要があります。私のアプリケーションはALTを押すまで非アクティブになります。メッセージボックスで[OK]を押します。MFC MessageBoxがすべてのウィンドウの上部に表示されない

ここにコードが添付されています。

MessageBox(NULL,"Invalid File, Parsing is going to be terminate"); 

AfxMessageBox("Win32 MessageMessage",MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST);

私は非常に感謝ウィル誰かが私に

+2

どちらをお使いですか? 'MessageBox'または' AfxMessageBox'?両方を使用している場合は... *なぜ*両方を使用していますか? –

+1

これは別のスレッドから呼び出していますか? Win32 APIバージョンを使用する場合は、親ウィンドウのハンドルを渡す必要があります。 – zar

+0

コードグレー:私は両方を使用しており、同じように動作しています。私は、ダイアログのクラスから継承された親アクティビティを持っています。そして、OpenGLウィンドウを使用しています... Windowsハンドラの使い方を教えています。もし私が最初のパラメータとしてgetWindows()を置くと、コンパイルされません。親切に私を助けてください – DareDevil

答えて

1

を助けている場合、あなたはHWND WINAPI GetDesktopWindow(無効)を使用することができます 、画面上Messageboxはを表示するには、ハンドル渡す必要があります。 Handleのデスクトップを取得し、これをMessageBox()関数で渡す関数です。

あなたはGetDesktopWindoeは、デスクトップウィンドウへのハンドルを取得し

http://msdn.microsoft.com/en-us/library/windows/desktop/ms633504%28v=vs.85%29.aspx

からより多くの助けを得ることができます。デスクトップウィンドウは画面全体をカバーします。デスクトップウィンドウは、その上に他のウィンドウが描画される領域です。これはOpenGLでも同様に動作します。

+0

私はそのようにしました。私はボタンを押して特定のダイアログウィンドウを表示します。返信いただきありがとうございます – DareDevil

関連する問題