potuです。いつもお世話になっています。
現在、常駐プログラム(もどき)を作成中です。
環境は、Win2000, VC6.0, MFC使用です。
プロジェクトについては次の通りです。
・アプリケーションの種類 → SDI
・基本クラス → CFormView
手順としては、
1.起動時にウィンドウを最小化し、タスクトレイにアイコンを表示する。
2.タスクトレイのアイコンをダブルクリックすると、ウィンドウを表示する。
になります。
現状は、「起動時にウィンドウを最小化し、タスクトレイにアイコンを表示する」「タスクトレ
イのアイコンをダブルクリックしたときに、動作している」ところまでできています。
質問は、「ShowWindow(SW_SHOWMINIMIZED);」を使用して最小化したのですが、「ShowWindow
(SW_SHOW);」でウィンドウを表示することが出来ないことです。
「ShowWindow();」をいろいろ試してみたのですが、どれもウィンドウを表示できませんでし
た。
どなたかご存知でしたら、教えてください。
SHOWは表示であって、対するは非表示。
最小化とは意味が異なります。
ShowWindow()には、他にも指定できる定数がありますよね?
色々試してもダメですか?
sugar さんレスありがとうございます。
>SHOWは表示であって、対するは非表示。
>最小化とは意味が異なります。
そうですね!すみません m(__)m
>ShowWindow()には、他にも指定できる定数がありますよね?
>色々試してもダメですか?
MSDNの「CWnd::ShowWindow」にあるものを試してみたのですが、表示できませんでした。
ShowWindow()で指定できる定数について、他にありましたら教えて下さい m(__)m
SW_SHOWNORMALではなくて?
おかしいですね、ちゃんとメインフレームに対してShowWindow()できてるのでしょうか?
最小化を戻そうとした時、「表示できませんでした。」という表現をされてますが、
他に何か変わったことはありませんか?
例えば、タスクバーのボタンはどうなってますか?
最小化されたアプリのタスクボタンをマウスでクリックすると、
もとのサイズに戻りますか?
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をメインウィンドウにしていることが原因・・・。でしょうか?
>「タスクトレイのアイコンをダブルクリックしたときに、動作している」
>
この「動作している」って、具体的に何ですかね。
今、手元の環境(Win2000pro)で試してみましたが、SDIがメインウィンドウとなっても
何の問題もなく動作しました。
ShowWindow(SW_SHOWNORMAL)です。
ところで、タスクトレイに追加したアイコンから、
メッセージの取得は正しくできているのでしょうか?
ここまでくると、ShowWindow()の引数が問題ではないですね。
sugar さんレスありがとうございます。
ダブルクリックで、ウィンドウを表示することが出来ました!!
---動いたプログラム---
AfxGetMainWnd()->SetForegroundWindow();
AfxGetMainWnd()->ShowWindow(SW_SHOWNORMAL);
AfxGetMainWnd()->UpdateWindow();
---ここまで---
「AfxGetMainWnd()->」を、「m_pMainWnd->」としていました。
いろいろ教えていただいた皆様に感謝です。
ありがとうございました。m(__)m