• ベストアンサー

タスクバーに非表示

SDKではCreateWindowEXを使えば WS_EX_TOOLWINDOWを指定することでタスクバー上に非表示にすることができましたが、 MFCで BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)で cs.dwExStyle |= WS_EX_TOOLWINDOWとしたところ、 最大化、最小化ボタンが消えてしまいます。 最大化最小化ボタンをつけて、かつタスクバーに表示させたくないのですが どうすれば良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.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だとちょっと面倒くさかったはずなのでおすすめしません。

sha-girl
質問者

お礼

大変参考になりました。ありがとうございます。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

ツールウィンドウにしないのであれば、SDKでもMFCでも一番親のウィンドウが非表示であればタスクバーには表示されなくなれます

sha-girl
質問者

お礼

ご回答ありがとうございます。 例えばInitInstanceで m_pMainWnd->ShowWindow(SW_HIDE); m_pMainWnd->UpdateWindow(); で非表示にし 別途CreateWindow等でウインドウを作成する必要が あるのでしょうか。

関連するQ&A