• ベストアンサー

アプリを開いた状態にする方法

いつもお世話になります。 VC++でプロジェクト、「MFCアプリケーション」で Windowダイアログで用いてプログラムを書きましたが、 実行ファイル(.exe)を起動すると ウィンドウが閉じた状態になります(ディスクトップ画面に表示されず閉じて状態ではあるが、起動している状態)。 実行ファイル(.exe)を起動し、ウィンドウを開いた状態にする設定などはあるのでしょうか? ちなみに、閉じた状態で選択するとアプリは開きますが、あくまで、起動して開いた状態にしたいです。 どうぞよろしくお願い致します。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

ダイアログベースですか。 自分で派生したダイアログクラス CSampleDlg の OnInitDialog で何かやっていませんか? 最悪、  m_pMainWnd = &dlg; m_pMainWnd->ShowWindow(SW_SHOW); //←追加  INT_PTR nResponse = dlg.DoModal(); で無理やり表示できるとは思いますが、 プログラムのどこかに m_pMainWnd = pMainFrame; // Show the main window using the nCmdShow parameter // passed to the application when it was first launched. pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); な感じの部分があって、そこでの メンバー変数 m_nCmdShowが 変な値になっているような気がします。

the-ai
質問者

お礼

回答ありがとうございます。 OnInitDialog()内で ShowWindow(SW_MINIMIZE); となっていました。 コメントアウトで正常に開くウィンドウになりました。 本当にありがとうございました。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

タスクバーにはあるけれどもウィンドウが開いてない状態 ということでいいですか? CWinAppから継承して自分のアプリケーションクラスを 定義していると思いますが、そのクラスのメンバー関数 InitInstance はどう定義されていますか?

the-ai
質問者

お礼

すみません。InitInstance()ありました。 BOOL CSampleApp::InitInstance() {  InitCommonControls();  CWinApp::InitInstance();  if (!AfxSocketInit())  { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE;  }  AfxEnableControlContainer();  SetRegistryKey(_T("アプリケーション ウィザードで生成されたローカル アプリケーション"));  CSampleDlg dlg;  m_pMainWnd = &dlg;  INT_PTR nResponse = dlg.DoModal();  if (nResponse == IDOK)  {  }  else if (nResponse == IDCANCEL)  {  }  return FALSE; } でも、この関数はまったくいじっていません。 よろしくお願い致します。

the-ai
質問者

補足

回答ありがとうございます。 そうです。実行ファイルを起動すると、 タスクバーにはあるけど、閉じた状態になっています。 いちいち、ウィンドウを開かないといけない状態です。 CWinAppクラスとInitInstance はありません。 ダイアログベースで作成しており、 ボタンを追加し、そのボタンクリックイベント関数ないに 処理を加えたアプリです。

関連するQ&A