許せない心理テスト

VC++ 7.1 で メインウィンドウを非表示に
したいのですが、探し方が悪いのか
ShowWindowが見つかりません
どのようにして 非表示にしたらいいのでしょうか?
よろしくお願いいたします

A 回答 (3件)

シングルドキュメント(SDI)やマルチドキュメント(MDI)でなくダイアログベースのアプリなんですね。

私の回答はSDIのほうでした。
プロジェクトのソースの中ではDoModalしか呼んでないみたいですね。で、調べてみたら、DoModalからRunModalLoopを呼んでいてその中でShowWindowを呼んでるみたいです。
gotyanさんがどういうタイミングや状況で非表示にしたいのかわかりませんが、ダイアログクラスもCWndクラスの派生クラスなので、例えばメインのダイアログにボタンを追加してそのコールバック関数に
this->ShowWindow(SW_HIDE);
this->UpdateWindow();

Sleep(5000);
this->ShowWindow(SW_SHOW);
this->UpdateWindow();
を書いたらボタンを押してから5秒間非表示にはなります。これでgotyanさんが満足するかどうかはわかりませんけど。(^^;;;

趣味でPGしてる程度なので間違っていたらすみません。
    • good
    • 0
この回答へのお礼

ありがとうございます
始めから消すのではなく
アクティブになったときに消すようにします。
BCBでは始めから消して作ったような気がしましたので
探していたのですが(^^;
MFCを覚える練習に
タスクトレイに常駐するものを作りたかったのです。
今までBCBやC#を使ってMFCから逃げていたのですが
もうそろそろと思いまして。。
ありがとうございました。

お礼日時:2004/09/16 23:56

MFCアプリケーション作成のプロジェクトでウィザードをつかったなら


作成したアプリケーションクラスのソースファイル中のInitInstance関数内
で m_pMainWnd->ShowWindow(SW_SHOW); があると思います。SW_SHOWをSW_HIDE
にしたら消えます。

この回答への補足

BOOL CWinApp::InitInstance()
{
InitLibId();
m_hLangResourceDLL = LoadAppLangResourceDLL();
if(m_hLangResourceDLL != NULL)
{
AfxSetResourceHandle(m_hLangResourceDLL);
_AtlBaseModule.SetResourceInstance(m_hLangResourceDLL);
}

return TRUE;
}

こちらの方もクラスビューから調べて見たのですが
やはりありません よろしくお願いいたします

補足日時:2004/09/16 14:02
    • good
    • 0
この回答へのお礼

なんども申し訳ございません
これの事だと思うのですが
BOOL Ctest4App::InitInstance()
{
InitCommonControls();

CWinApp::InitInstance();

AfxEnableControlContainer();

SetRegistryKey(_T("アプリケーション ウィザードで生成されたローカル アプリケーション"));

Ctest4Dlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{}
else if (nResponse == IDCANCEL)
{}

return FALSE;
}


m_pMainWnd->ShowWindow(SW_SHOW);が見つかりません
すべてのファイルを検索したのですがこれしかないです。
なんども申し訳ございませんがよろしくお願い致します。

お礼日時:2004/09/16 10:59

ShowWindow()はWindowsAPIですが・・・。



参考URL:http://www.microsoft.com/japan/msdn/library/defa …
    • good
    • 0
この回答へのお礼

MFC ライブラリ リファレンスに CWnd::ShowWindow
と書いてあるのですが これでウィンドウの表示設定を
してるのではないのでしょうか?
どの部分でメインウインドウの表示の設定をしているのでしょうか?
すいませんがよろしくお願い致します。

お礼日時:2004/09/15 22:58

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


おすすめ情報