プロが教えるわが家の防犯対策術!

SDKではCreateWindowEXを使えば
WS_EX_TOOLWINDOWを指定することでタスクバー上に非表示にすることができましたが、

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

A 回答 (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だとちょっと面倒くさかったはずなのでおすすめしません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/06/04 14:16

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

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

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

お礼日時:2004/06/04 09:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!