• ベストアンサー

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

いつもお世話になります。 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

  • 実行ファイル(.exe)が別のPCで実行できない

    お世話になります。 VC++で、MFCアプリケーションプロジェクトより ダイアログベースでアプリを作成したのですが、 その実行ファイル.exeを別のWindowsPCで 実行すると、 ”「MFC71.DLL」が見つからなかったため、このアプリケーションは開始できませんでした。アプリケーションをインストールしなおすことの問題は解決される場合があります。” というエラーメッセージが出て実行できません。 どのようにすれば、実行できるのでしょうか? また、Releaseモードでビルドした場合、 Debugモードでビルドしたときには、出なかった 「error LINK2019:未解決の外部シンボル・・・。」という エラーがでます。 どうぞよろしくお願い致します。

  • MFCをDLL化してコンソールアプリから起動

    MFCアプリケーション(プロジェクト作成でMFCアプリケーションを選択)をDLL化して、コンソールアプリケーションからこのMFCをマルチスレッドで起動する方法を教えてください。MFCが起動後、コンソールアプリケーションの処理は次に進行し、MFCは操作可能な状態(アイコンなどがクリック可能で、青丸クルクルにはならない)にしたいです。また、コンソールアプリケーションからもMFCが操作可能にしたいです(例えば、コンソールアプリからAと入力するとファイルのオープンダイアログが開く、、、とか)。

  • 【VC++】インストーラーの削除

    VC++2005の.NETでアプリケーションを作成しています。 VC++のプロジェクト追加にて、 新しいプロジェクト⇒セットアッププロジェクト を選択し、「.msi」ファイルをビルド生成して、 インストーラーを作成しました。 このインストーラーを実行し、指定のフォルダにアプリのexeファイルは生成することが出来ました。 しかし、このアプリを実行すると、同階層に設定ファイルが生成されるのですが、 アプリ終了後、「.msi」ファイルを再度実行して、インストールファイルの削除をする際に、 インストールフォルダと、その中に設定ファイルのみ残ってしまう状態となってしまいます。 削除時には、設定ファイルも一緒に削除したいのですが、 削除対象のファイルを指定することはできないのでしょうか? ちなみに設定ファイルの状態として、下記となります。 ・起動時に生成 ・ファイル名は同じ⇒よって生成の度に上書き ・生成場所はexeファイルと同階層

  • WebアプリよりVC++で作成したEXEを呼出す方法

    初めて、投稿します。よろしくお願いします。 既にVC++6.0で作成されているWindowsアプリケーションを 既に作成した自作のWebアプリケーション(Java+JSPで作成)から呼出す場合、 どのような方法を取ればよいのでしょうか? 過去のログを見ていると、ActiveXコントロールに移植する方法が考えられるようですが、 そうすると、内部の集計ロジックは使いまわせるとしても、一から作り直すことになるように思われます。 コストを抑えて、求められている機能を実現するには、どのような方法が考えられるでしょうか? アドバイスお願いします。 ※個人的には、Windowsアプリで行おうとしている処理を  すべてWebアプリで処理したほうがコストを抑えられるような気が・・・。 ≪実行/開発環境≫ ●サーバ環境  Windows2000Server SP4  IIS 5.0+J2SE1.3.1_04+Tomcat 3.3.1  SQLServer2000  既存のWebアプリケーションは、Java、JSPで作成  フレームワークとしてStrutsを採用 ●クライアント環境  WindowsXP or Windows2000  Internet Explorer 6.0  VC++6.0 ≪既存Windowsアプリの機能≫ ●既存のWindowsアプリケーションは、ダイアログベースのアプリケーション  (プロジェクト作成時、「MFC AppWizard (exe)」で「ダイアログベース」を選択)。 ●DBに接続し、指定された条件でデータを取得し、集計処理を行う。 ●集計処理後、集計結果を以下のいずれかの方法で出力。  (1)CSVファイル  (2)グラフ画面表示(MSChartを使用) ≪求められている機能≫ ●Webアプリ(Webブラウザ)からWindowsアプリを呼出す  (Windowsアプリの機能を活用したい) ●既存のWindowsアプリでは、集計条件、集計結果の出力方法は  画面より指定していたが、今回は設定ファイルから読込む。  画面から指定はしない。 以上です。

  • VC++2010で作ったアプリケーション

    最近VC++でアプリケーションを作りました。 VC++のMFCを使ってです。 簡単なカレンダーなのですが、・・・ そのカレンダーのプログラムをコンパイルするとexeファイルができ、 そのexeファイルをクリックすると、確かに起動し、アプリケーションを使うことができるのですが、 問題はここからで、 このファイル、自分のパソコン上では動くのですが、 ほかの人のパソコン上だと「コンポーネントが見つかりません、mfc100,dllが見つかりません」 とか言う警告が出てしまうのです。 なぜ他のパソコンでは起動できないのですか? もしかして、作ったアプリケーションは、exeファイルだけあってもだめなのでしょうか? よろしく願います。

  • ファイルドラックでアプリを起動したら・・・(MFC)

    いつもお世話になっております Win98SE VC++6.0 MFC SDI formview ベースのアプリケーションを作っているのですが、 アプリケーションのアイコンに開くファイルをドラックしたら以下のエラーのダイアログがでて、コマンドライン引数が受けられないばかりかアプリケーションが止まってしまいます。 ------------------------------------------ Microsoft Visual C++ Runtime Library Runtime Error! Program : "実行ファイルの名前" abnormal program termination ------------------------------------- どこをいじってそうなってしまったのかわからないので困っています。 心当たりのあるかたアドバイスお願いいたします。 普通に起動して、開くコマンドでファイルを開くのは大丈夫です。

  • アプリ起動時にダイアログも開くには?

    <環境> WIN98 VC++6.0 MFC SDIにて アプリ起動時に、SDIは非表示にしているおり、さらに同時にダイアログも非表示で開きたいのですが、ダイアログのコードはどこに書けばよいのでしょうか?

  • アプリケーションの・・

    VC++6.0のMFCにてオセロのアプリケーションを作成しました。 今はプロジェクトでF7でビルドしF5で実行していますが、 これを例えばWindowのスクリーン上に設置されてあるごみ箱なり マイコンピューターのようにショートカットのようなものを作成し、 それをダブルクリックすれば実行される のような形式にしたいのですが どうすればいいのでしょうか? 

  • かんたんなアプリインストーラー作成に関して。

    はじめまして、プログラム初心者です。 今度VC++2003を利用して、多種のアプリケーションをメニュ形式で選び実行するとインストールできるというアプリを作成使用と思っています。 プロジェクトのテンプレートは何を使用すればよいですか? 動作させたい環境は Windows2000pro WindowsXP WindowsVista .Netがインストールされていなくても動作するもの。 プログラム自体はEXEのみでインストールはしない。(dll不要) 例にたとえると、IO-DATAやバッファローの製品を買うとついてくる添付ソフトをインストールするメニューアプリな感じです。 大変素人な質問で申し訳ございませんがよろしくお願いします。

  • VC++のプロジェクト指定

    VC++でほぼ始めて”EXE”を開発するのですが、[新規作成]でどのプロジェクトを指定すればいいかわかりません。 つまり、「MFC AppWizard(exe)」と「Win32Application」と「Win32ConsoleApplication」の使い分けがわかりません。 ちなみに、現在、あるAPからCALLされるEXEを作ろうとしています。 このEXEの機能は、レジストリからある情報を読み込み、その内容をINIファイルに出力し、読み込んだレジストリ情報で指定されているEXEにパラメータとしてこのINIファイルを設定し、実行させるものです。 宜しくお願いします。

専門家に質問してみよう