- ベストアンサー
タスクバーに非表示
SDKではCreateWindowEXを使えば WS_EX_TOOLWINDOWを指定することでタスクバー上に非表示にすることができましたが、 MFCで BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)で cs.dwExStyle |= WS_EX_TOOLWINDOWとしたところ、 最大化、最小化ボタンが消えてしまいます。 最大化最小化ボタンをつけて、かつタスクバーに表示させたくないのですが どうすれば良いでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>例えばInitInstanceで >m_pMainWnd->ShowWindow(SW_HIDE); >m_pMainWnd->UpdateWindow(); >で非表示にし MFCだとこれじゃちゃんと消えないんですよね。 SDKでいうWinMainのnCmdShowの内容を変更する必要があります。 if (!ProcessShellCommand(cmdInfo)) の行の前に、 m_nCmdShow = SW_HIDE; を追加し、 ShowWindowとUpdateWindowの行をコメントアウトすることになります。 >別途CreateWindow等でウインドウを作成する必要が >あるのでしょうか。 はい、そういうことに。 あとは、最上位のウィンドウを後から作ってもぐりこませることもできなくはないですが、MFCだとちょっと面倒くさかったはずなのでおすすめしません。
その他の回答 (1)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
ツールウィンドウにしないのであれば、SDKでもMFCでも一番親のウィンドウが非表示であればタスクバーには表示されなくなれます
お礼
ご回答ありがとうございます。 例えばInitInstanceで m_pMainWnd->ShowWindow(SW_HIDE); m_pMainWnd->UpdateWindow(); で非表示にし 別途CreateWindow等でウインドウを作成する必要が あるのでしょうか。
お礼
大変参考になりました。ありがとうございます。