ウィンドウの表示 – プログラミング – Home

通知
すべてクリア

[解決済] ウィンドウの表示


potu
 potu
(@potu)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

potuです。いつもお世話になっています。

現在、常駐プログラム(もどき)を作成中です。

環境は、Win2000, VC6.0, MFC使用です。

プロジェクトについては次の通りです。
・アプリケーションの種類 → SDI
・基本クラス → CFormView

手順としては、

1.起動時にウィンドウを最小化し、タスクトレイにアイコンを表示する。
2.タスクトレイのアイコンをダブルクリックすると、ウィンドウを表示する。

になります。

現状は、「起動時にウィンドウを最小化し、タスクトレイにアイコンを表示する」「タスクトレ
イのアイコンをダブルクリックしたときに、動作している」ところまでできています。

質問は、「ShowWindow(SW_SHOWMINIMIZED);」を使用して最小化したのですが、「ShowWindow
(SW_SHOW);」でウィンドウを表示することが出来ないことです。
「ShowWindow();」をいろいろ試してみたのですが、どれもウィンドウを表示できませんでし
た。

どなたかご存知でしたら、教えてください。


引用未解決
トピックタグ
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

SHOWは表示であって、対するは非表示。
最小化とは意味が異なります。

ShowWindow()には、他にも指定できる定数がありますよね?
色々試してもダメですか?


返信引用
potu
 potu
(@potu)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

sugar さんレスありがとうございます。

>SHOWは表示であって、対するは非表示。
>最小化とは意味が異なります。

そうですね!すみません m(__)m

>ShowWindow()には、他にも指定できる定数がありますよね?
>色々試してもダメですか?

MSDNの「CWnd::ShowWindow」にあるものを試してみたのですが、表示できませんでした。
ShowWindow()で指定できる定数について、他にありましたら教えて下さい m(__)m


返信引用
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

SW_SHOWNORMALではなくて?


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

おかしいですね、ちゃんとメインフレームに対してShowWindow()できてるのでしょうか?
最小化を戻そうとした時、「表示できませんでした。」という表現をされてますが、
他に何か変わったことはありませんか?
例えば、タスクバーのボタンはどうなってますか?
最小化されたアプリのタスクボタンをマウスでクリックすると、
もとのサイズに戻りますか?


返信引用
potu
 potu
(@potu)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

PAI さん sugar さんレスありがとうございます。

PAIさんへ
>SW_SHOWNORMALではなくて?
SW_SHOWNORMALもだめでした(T_T)

sugarさんへ
>最小化されたアプリのタスクボタンをマウスでクリックすると、
>もとのサイズに戻りますか?
はい。戻るのですよ(T_T)

http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200207/02070099.txt

↑でもありましたが・・・
やはり、SDIをメインウィンドウにしていることが原因・・・。でしょうか?


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

>「タスクトレイのアイコンをダブルクリックしたときに、動作している」
>
この「動作している」って、具体的に何ですかね。

今、手元の環境(Win2000pro)で試してみましたが、SDIがメインウィンドウとなっても
何の問題もなく動作しました。
ShowWindow(SW_SHOWNORMAL)です。

ところで、タスクトレイに追加したアイコンから、
メッセージの取得は正しくできているのでしょうか?
ここまでくると、ShowWindow()の引数が問題ではないですね。


返信引用
potu
 potu
(@potu)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

sugar さんレスありがとうございます。

ダブルクリックで、ウィンドウを表示することが出来ました!!

---動いたプログラム---

AfxGetMainWnd()->SetForegroundWindow();
AfxGetMainWnd()->ShowWindow(SW_SHOWNORMAL);
AfxGetMainWnd()->UpdateWindow();

---ここまで---

「AfxGetMainWnd()->」を、「m_pMainWnd->」としていました。

いろいろ教えていただいた皆様に感謝です。
ありがとうございました。m(__)m


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました