ボタンのクリックやLANでデータを受信すると、次の画面へ遷移する(又は最初の画面へ戻る)プログラムを作成しているのですが、最初のダイアログを ShowWindow(SW_HIDE) している為、タスクバーやタスクマネージャーのタスク欄に表示されず、他のウインドウがアクティブになると、ALT+Tabキーでしかそのウインドウを前に出せません。
VC++を始めて5ヶ月で得た知識や自分力量を考えて、以下のように作成したのですが、何か良い方法はないでしょうか?
(1)最初のダイアログの OnInitDialog() で画面を制御するスレッド(以降、画面制御)とLANデータを受信するスレッドを生成
(2)画面制御は、最初の画面をモーダレスで表示(Create)
(3)最初のダイアログを ShowWindow(SW_HIDE) で不可視にする。
(4)最初の画面は、あるボタンがクリックされると画面制御にPostMessage()で通知し、画面を閉じる。
(5)画面制御は、2番目の画面を同様にモーダレスで表示(Create)
※LANデータを受信した場合は、画面制御へメッセージキューでデータを渡し、必要に応じてその時表示している画面へ別のメッセージキューでデータを渡しています。
※あとは、ボタンクリックやLANデータの受信で次の画面へ遷移したり、最初の画面へ戻る。(表示される画面は常に1つ)
Windows XP Pro SP3
Visual C++ 6.0 SP6
他の人の回答に、親ウインドウを不可視にすると、タスクバーに表示されないというような事が書いてありましたが、何か良い方法はないものでしょうか?
どなたか助言をお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>メインウインドウを、SW_MINIMIZEにするという助言を試してみました。
>タスクバーには当然ながら表示されますが、それをクリックすると、メインウインドウも当然のように表示されてしまいます。(メインウインドウは表示したくないのです)
メインウィンドウの表示周りのイベントを何か工夫して処理してあげれば、
メインウィンドウ自体は表示せずに
タスクバー上は表示できると思いますが、
画面制御をしているダイアログをモーダレスにしている理由の方が気になってきました。
もし、ダイアログを最上面に表示したいだけの理由でしたら、
モーダレスダイアログをやめて、最上面表示のスタイルを設定した
ウィンドウにする方が簡単かもしれません。
回答、ありがとうございます。
画面制御をしているのは、ユーザインターフェーススレッド用ウインドウで、CreateEXにより親ウインドウと完全に切り離したオーバーラップウインドウです。(この部分は他人が作成した物をそのまま使用しているので、詳しくは説明出来ません。)
モーダレスにしたのは8個の画面で、ボタンが操作されたりLANデータを受信した時、PostMessage()やメッセージキューで画面を遷移させるので、モーダレスの方が都合が良いと判断しました。
>メインウィンドウの表示周りのイベントを何か工夫して処理してあげれば、
とは、タスクバーのアイコン?がクリックされた時、メインウインドウは何もせず、その時表示されている画面が最上位にくるようにするという事でしょうか?
No.1
- 回答日時:
メインウィンドウを、SW_HIDE せずに、SW_MINIMIZE に
してみては如何でしょう。
回答、ありがとうございます。何故か、回答メールが届いてなく、気付きませんでした。
メインウインドウを、SW_MINIMIZEにするという助言を試してみました。
タスクバーには当然ながら表示されますが、それをクリックすると、メインウインドウも当然のように表示されてしまいます。(メインウインドウは表示したくないのです)
表示は、画面制御により制御されているモーダレスの画面だけでして...。
おまけに、Alt+Tabキーを押した時のリストには、モーダレスの画面とメインウインドウの2つが別々に表示されてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- Windows 95・98 Windows11にバージョン アップしました。 2 2023/07/21 18:36
- その他(プログラミング・Web制作) vbaで座標を指定してコマンドプロンプト画面を表示させる。 1 2023/01/09 16:06
- Windows 10 パソコンの起動時、画面が黒いままのトラブルにつきまして。 4 2022/10/02 18:02
- Chrome(クローム) 最近Win10にてブラウザが左にスッと隠れていく現象に悩まされてます 3 2023/07/22 23:11
- その他(データベース) Q&Aフォームを作成したいのですが、どう設計してよいか分かりません、アドバイスお願い致します。 1 2023/07/27 19:04
- その他(ブラウザ) エッジのスタート画面について 2 2022/08/17 11:12
- その他(OS) Mac OSの操作について 2 2022/06/08 09:19
- その他(Microsoft Office) エクセルでの作成データをモニター画面内に収めたい。 1 2022/04/23 11:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
Java-jspの画面入力値保持について
-
ホームページビルダーが遅い!...
-
遷移元を判定したい!
-
C# ログイン画面からメイン画面...
-
SessionとViewStateについて
-
javaでプリントスクリーン(ス...
-
"+"文字が" (スペース)"に文字...
-
Javascriptのhistory.back()が...
-
GUIとは何でしょうか?(定義)
-
プログラミングで例えばゲーム...
-
Strutsで画面遷移させない。
-
system("cls")について
-
ASP.NET 画面遷移前の状態を保...
-
ブラウザ表示しない設定のPDFの...
-
画面を隠す・消す方法を教えて...
-
URLはそのままで、リンクをクリ...
-
alertでHTMLのコードが出て...
-
モーダル画面の親をクリック時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
画面遷移を行わずに同一ページ...
-
プログラミングで例えばゲーム...
-
フロントエンドフレームワーク...
-
Java-jspの画面入力値保持について
-
遷移元を判定したい!
-
ASP.NET 画面遷移前の状態を保...
-
Googleキーワードについて キー...
-
Javaプログラミングの質問にな...
-
C言語で今まで表示していた画面...
-
ボタンを押したあとに画像を表...
-
セッション切れでのリクエスト...
-
C# ログイン画面からメイン画面...
-
JavaScriptでページが更新され...
-
ServletからServletへの値渡し
-
ZOOMでオンラインミーティング
-
登録後、呼び出し元ページに戻...
-
サブミット後、自動的に画面を...
-
アドレスバーに引数を表示させ...
-
Beautiful Soupのインストール...
おすすめ情報