ウィンドウの表示

[戻る]
potu 2002/07/19(金) 11:04:36
potuです。いつもお世話になっています。

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

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

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


手順としては、

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

になります。


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

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



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

sugar 2002/07/19(金) 11:35:03
SHOWは表示であって、対するは非表示。
最小化とは意味が異なります。

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

potu 2002/07/19(金) 11:49:30
sugar さんレスありがとうございます。

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

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

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

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

PAI 2002/07/21(日) 02:43:05
SW_SHOWNORMALではなくて?

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

potu 2002/07/22(月) 11:30:19
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 2002/07/22(月) 18:42:50
>「タスクトレイのアイコンをダブルクリックしたときに、動作している」
>
この「動作している」って、具体的に何ですかね。

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

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

potu 2002/07/22(月) 19:28:24
[[解決]]
sugar さんレスありがとうございます。

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

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

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

---ここまで---

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

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

古いスレッドには追加発言できません。