• ベストアンサー

WindowsCEにて特定の画面を最前面に表示したい

WindowsCE 3.0+embedded VC 3.0+MFCにて開発を行っています。 MFCにて3枚ウインドウを表示している場合、1,2,3と表示しているものをサスペンド→レジューム時に2,1,3と順番を変えたいのですがうまくいきません。 BringWindowToTopメソッドを実行したのですが、うまく順番が変わりませんでした。 このような動作は可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.1

1,2,3のウィンドウの親子関係はどのようになっていますか? BringWindowToTopのヘルプには「指定されたウィンドウを Z オーダーの先頭に持ってきます。また、指定されたウィンドウがトップレベルウィンドウであれば、それをアクティブにします。指定されたウィンドウが子ウィンドウであれば、その子ウィンドウのトップレベルの親ウィンドウをアクティブにします。」 と書いてあります。 可能であれば、ウィンドウの表示・非表示で切り替えてみては如何ですか? (同じ大きさのウィンドウであれば大丈夫ですよね?)

BAIKAN
質問者

補足

回答ありがとうございます。 クラス(親)-1(子) クラス(親)-2(子) という関係です。 親のクラスは二つとも同じで、1(子)はモードレスダイアログ、2(子)はモーダルダイアログです。

関連するQ&A

  • WindowsCEにおける開発環境について

    コンニチワ WindowsCE上でCE用のソフトウェアを開発(コンパイル)したいのですが 開発環境は存在しますでしょうか? eMbedded Visual Toolsはよいのですがそれ自身はCE上では動作しないので 開発ツールはいりませんので コンパイラだけでもいいので知っている方いましたらお願いします。

  • WindowsCEにVB6プログラム

    POT(移動時点管理システム)において、端末にWindowsCEを利用する仕事の見積りを出せと言われました。 開発はVB6、だと思われます。 時間がないので、他の情報は全く聞けていませんし、気を利かせて資料作成なども全くしてくれていません。 WindowsCE上でVB6のプログラムは動作するのでしょうか? また、「VB」という言葉がVB.NETを示していた場合、.NET Frameworkは WindowsCE上で動作するのでしょうか? (私が調べた所、.NET Frameworkは入らなそうなので、VB6なのかな、という所です) 宜しくお願い致します。

  • WinXpのVC++6.0で作成した実行ファイル

    MFCで作成した実行ファイルについて質問します。 WindowsXpのVC++6.0で作成した実行ファイルを、Windows7で正常に動作しますか? 質問の背景:私の場合、『WindowsXpのVC++6.0で作成した実行ファイル』を Windows7で実行した場合には、正常に動作しない様です。 この件に関しまして、コメント頂けますと大変助かります。

  • Editboxのアスタリスク変換

    eMbedded Visual C++4.0 SP3にてWindowsCE4.2 .net環境(PDA)で動作するAPを開発しています。 Editboxに数値を入力する際、表示をアスタリスク("*")に変換を行いたいのですが可能でしょうか? できれば文字変換ではなく、見た目のみ(変数値は変更しない)変換されているようにしたいのですが可能でしょうか? よろしくお願いします。

  • OCX (ACTIVEX)で非表示にするとハンドルが取れない

    MSVC++(MFC)を使用して、OCXモジュールを開発しています。 VBデザイン時に Visibleプロパティがtrueの場合でも 実行時には非表示になるようしたいと思っています。 非表示にするために、「コントロールの型情報の制御」のところで、 ******に OLEMISC_INVISIBLEATRUNTIME を追加すると、 実行時に非表示になり、要件は満たすのですが、 この場合、GetSafeHwnd()の返却値がNULLとなってしまい、 イベント発生時のPostMessage()が出来なくなってしまいます。 OCXを非表示にでき、PostMessage()が成功するようにするには どのようにしたら良いかをご存知でしたら教えてください。 なお、WINDOWS 95からXPまで全ての環境での動作を考えています。

  • 画面表示が間に合わない

    VC++ 6.0 で odbc を使ってオラクルのデータベースからデータを取得しています。プログラム実行と同時に、処理がDB接続→SQL文送信→データ抽出と、一気に 進んでしまい、本来、同時進行でウィンドウ内に表示すべきメッセージなどが表示されないまま、データを読み終わるまでウィンドウがフリーズ状態になります。 たぶんDBを扱う時に限った事ではないのでしょうが、こういった場合のうまく同期をとる方法を教えてください。。。(全ての画面表示がおわってから、次の処理へいく方法とか)どうかよろしくお願いします。

  • ウインドウの最前面表示

    指定された日時になると、メッセージウインドウを表示するソフトを作成中ですが、そのウインドウのOnInitDialog()でShowWindow(SW_SHOW)をコールしても、その時に起動しているアプリケーションによっては、最前面に表示されません。(エクスプローラやIEの前面には表示されるが、VC++では背面に表示されます。) アプリケーションによっては無理なのでしょうか? (警告ウインドウとしても使用したいので、最前面に表示したいのですが...。) 環境  WindowsXP  Visual C++6.0

  • eMbedded Visual Basic 3.0で、フォームを閉じたい

    開発環境:eMbedded Visual Basic 3.0 現在、WindowsCE3.0で動作するPGを作成中なのですが、 フォームをオープンする、クローズするといった初歩的な記述方法がわかりません。。 VB6.0では、load、Unloadを使えばよいのですが、どうもないようです。。 ご存知の方がいらっしゃいましたらお教え願えればと思います。

  • VC++/MFCでリフレクション

    Javaでは、ObjectのgetClass()でClassクラスの インスタンスが取れ、実行時に指定した、メソッド名や、引数で、動的にメソッドを呼びだすようなリフレクション機能が使用できます。 同様のことをC#でも実装したことがあります。 VC++/MFCにて、このようなリフレクションをやるやり方を教えてください。 C++の標準あるいわ、MFCの機能など、どちらでもよいです。 メタクラス型のようなものを実行時に取得して、リフレクションする方法だと思います。 質問の内容はVC++.NETやVC++/CLIではないです。そちらのほうでのやり方は既に発見しました。

  • ダイアログ最前面表示時の後ろの画面操作について

    はじめまして。 お世話になります。 開発環境:WindowsXP VC++6.0 MFC使用 ダイアログベースで画面を作成(A.exe CDialogベース)し、その画面でボタンを押下し 子画面(A_Child)を表示させます。表示方法はDoModal()で。 そのA_ChildはCDialogベースです。 A_Childダイアログが表示されている間(最前面)は、デスクトップ上の操作を 何も出来ない様にしたいのですが、方法はありますでしょうか? (例:スタート→ログオフでダイアログが表示しますよね。 その時ってそのダイアログ以外は触れないですよね。) せめて、自分たちが作成したアプリだけでも操作不可能にしたいのです。 SetWindowPos()、ModifyStyle()、色々試しましたが上手くいきません。 DoModalで表示させるのがそもそもまちがいののでしょうか? 何か方法が有りましたらよろしくお願いします。 説明が下手ですみません。

専門家に質問してみよう