• 締切済み

関連付け起動と起動時のメッセージ

VC++6+WinXPにてプログラミングしています CWinAppのInitInstance()にて下記コードを実行しファイルの関連付け起動を行っています。 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); しかし、起動時にはアプリが制御する機械の状態によって、機械の初期化メッセージを表示する必要があるため、同InitInstance()内でAfxMessageBox()によってメッセージを表示させていますが、メッセージが表示される場合は、ファイルが開きません。 メッセージを出すタイミング等についてアドバイスいただけるようでしたら、お願いいたします。

  • mtsm
  • お礼率64% (85/132)

みんなの回答

回答No.1

質問の意味がいまいちわかりません。 ですが、一般にInitInstance()内ではアプリケーション とウインドウがまだ、初期化途中ですので。MFCのメンバ、 関数の内のいくつかは使用できないか機能しません。 従って 1.親をデスクトップにしてMessageBox()を使う。 2.m_hWndが確定するOnCreate()以降でAfxMessageBox()する。 の、どちらかにしてみてはどうでしょう。

mtsm
質問者

補足

分かりにくい質問に回答いただきありがとうございます。 CDocument::OnOpenDocument()が実行される前に、メッセージ等を表示してしまうと、OnOpenDocumentが実行されないみたいなのです。 OnOpenDocument()内で、ファイル読み出し等の処理が終わった後に、メッセージを表示すべきなのでしょうか。 その場合でも、OnOpenDocument()が実行されない条件があるみたいなのですが...

関連するQ&A

  • Windowsのファイル関連付けについて

    今プログラミングの勉強をしています。 VC++です。 自分が作ったアプリのアイコンを特定の拡張子 (今はお試しで作っているので.abcですが) を作ったときにすぐに表示させるようにしたいのですが、WEBで適当に検索した方法だと 1.レジストリに書き込む(HKEY_CLASSES_ROOTに拡張子を書いてその下にその拡張子のアイコンの表示先を書く) 2.再起動する。 となっているのを発見しました。 ここでちょっとした疑問が出たのですが 再起動を行わずにすぐに表示できるようになる方法は あるのでしょうか? また、これは私の調べかたが悪いと思うのですが 関連付けを行うAPIってあるのでしょうか? (探してみたけど見つかりませんでした。) どなたか詳しい方いらっしゃいましたらご教授いただけませんでしょうか?

  • メッセージボックスが表示されないのですが?

    WIN98 VC++6.0 MFCにて mmmというプロジェクト名でウィザードに従いダイアログベースのPGを作りました。 下記のようにコードの2箇所にAfxMessageBox("3",MB_OK);を追加しましたが、どちらもメッセージボックスが表示されません。 どうしてなのでしょうか? お分かりも方是非教えてください。 ************************** BOOL CMmmApp::InitInstance() { AfxEnableControlContainer(); #ifdef _AFXDLL Enable3dControls(); #else Enable3dControlsStatic(); #endif CMmmDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); AfxMessageBox("3",MB_OK);//■追加 if (nResponse == IDOK) { AfxMessageBox("3",MB_OK);//■追加 } else if (nResponse == IDCANCEL) { } // ダイアログが閉じられてからアプリケーションのメッセージ ポンプを開始するよりは、 // アプリケーションを終了するために FALSE を返してください。 return FALSE; }

  • 関連付け

    皆さん、こんにちは。 やりたいことemlファイルをクリックしても起動することです。 OfficeにあるOutlookの関連付けを削除を削除してしましました。アイコンは表示されています、アイコンをクリックして起動もできます。 レジストリエディターを使用して編集操作をおこない関連付けを復元しようと検索しました。説明不足、理解するに難しいものばかりです。 ファイルマネジャーでブログラムから開く項目の中にあったものが表示されなくなってしまいました。 自分の知識不足、能力不足十分理解しています。 ご教示よろしくお願いいたします。

  • 関連付け

    ユーザーアカウントを変更し、その前のアカウントを消しました。 その後以前までテキストファイルを右クリックしたら、リッチテキストドイキュメント、後似たのが1つテキスト文書とかメモ帳、ワードパッドとか関連付けできたのにノートパッドしか表示されなくてやむなく選択したら、CSVファイルやCRCファイルまでがCRCチェックソフトで認識されなくなりました。 右クリックで表示される方法ご教授ください。OSはWinxp sp2です。

  • ファイルの関連付けの復元

    Windows7上でファイルの拡張子とE:にあるプログラムの関連付けをし、ファイルをダブルクリックすると同プログラムが起動しファイルを読み込むよう設定し使用していました。 その後事情によりドライブ・レターをEからDに変更したため、再度関連付けをやり直そうと同ファイル右クリック→<プログラムから開く>→<規定のプログラムを選択>をたどりますが、同ダイアログには既に全く関係のない<推奨されたプログラム>が存在し、参照からパスをたどりD:にある起動すべきプログラムを指定するのですが全く反映されません。ファイルのダブルクリックを繰り返しても関係のない<推奨されたプログラム>が起ち上がるばかりです。 また<スタート>→<既定のプログラム>→<ファイルの種類またはプロトコルのプログラムの関連付け>から試みても結果は同様です。 一旦同プログラムをアンインストール、レジストリをクリーンアップしてから再インストールしても改善できません。 PCメーカーのサポートによれば同プログラムがC:にないのが問題では?との話ですが、元々E:にあって正しく起動していたため納得がいきません。メーカーの言うようにOSの再インストールしか解決策はないのでしょうか?膨大な手間と労力を要するため、他に検証する手立てがあればご教示下さい。 また<ファイルを開くプログラムの選択>において表示される無関係の<推奨されたプログラム>を同ダイアログから削除する方法も教えて下さい。

  • アプリケーションの関連付けをなくしたい

    kaituyoと申します。 Windows2000を利用しているのですが、以前操作ミスで 「*****.1」というファイル(拡張子が .1)となっているファイルはアクロバットリーダーが起動するようにアプリケーションの関連付けがされてしまいました。 よって、拡張子を表示しないとなっていたら、「*****」とだけファイル名が表示されてしまいます。本当のファイル名は「*****.1」なのに・・・ どなたか、アプリケーションとの関連付けを削除して、ダブルクリックしてもアプリケーションが自動で起動しなくする方法を教えてください。 ちなみに、フォルダオプションのファイルタイプは見たのですが、該当するような項目が見当たりません。 (見方が違うのかもしれないのですが) 宜しく御願い致します。

  • Win7でファイルのプログラム関連付けが起動しない

    Windows7でファイルのプログラム関連付けが起動できません。 規定のプログラム ↓ ファイルの種類またはプロトコルのプログラムへの関連付け ↓ これを開くと、エクスプローラーは動作を停止しました。となり、エクスプローラーを再起動します。 と出たきり何も表示されません。 どなたかこの事象の解決方法を知っている方いらっしゃいますでしょうか? よろしくお願いいたします。

  • 関連付け設定を元に戻したい。

    前回、以下の質問に答えて下さり、大変参考になりました。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー Windows8.1です。 うっかりして、[.dll]ファイルを「メモ帳」で開くように関連付けしてしまったら、ディスクトップのインターネットエクスプローラーが使えなくなりました。 ディスクトップのインターネットエクスプローラーを起動すると、「このページは表示できません」と表示されてしまいました。 今、スタート画面の簡易エクスプローラーを起動してアクセスしています。 しかし、動画鑑賞ができなくなったり、よくフリーズするので困っています。 どうしたら、関連付けを「不明なアプリケーション」に戻せるのでしょうか? ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー kteds様より回答して頂いた方法を実行したところ、一時的にディスクトップのインターネットエクスプローラーを正常に起動することができました。 ところが、パソコンをシャットダウンして再起動したところ、またディスクトップのインターネットエクスプローラーが起動すると、同じメッセージが表示されて、どこにもアクセスできなくなりました。 コントロールパネル>プログラム>拡張子の関連付け設定を開いてみると、[.dll]の項目は消えていました。 なにか、私に不手際でもあったのでしょうか? 拡張子が[.dll]のファイルを「不明なアプリケーション」と表示されるようにするには、どうしたらいいでしょうか?

  • exeファイルが起動しません 関連付けから消したようです

    先ほど、『拡張子から行こう♪ My関連付け』 http://www.vector.co.jp/soft/win95/util/se147583.html というソフトを使って、拡張子毎にアイコンを変えていたら、exeファイルの関連付けを消してしまったようです。 いろいろなアプリケーションが開かなくなりました。 システムの復元やスキャンディスクも作動しません。 WORD、EXCELなどは選択するとファイルを開くアプリケーションの選択 が表示されます。そこでそれぞれWORD,EXCELを選択して開くと一度は起動しますが、エラーで終了してしまいます。 WinampやWMPなどのプレイヤーは本体だけでは起動しませんが、動画ファイルから開くときちんと起動します。 もとにもどせる方法はあるのでしょうか。。。。

  • 起動時のメッセージ。

    普段Win XPを使用しております。 起動時に、以前は何ともなかったのですが、急に Floppy disk fails (40) というメッセージが現れ、そこで起動が一度中断し、 F1キーなどを押すことで再度起動するようになってしまいました。また、その起動後もハードの状況(温度など)が表示され、それからふつうのWinXPのスタート画面にいきます。 これは、XP上で何かトラブルがでているのでしょうか? この表示をなくして以前のように快適に起動できる方法はないのでしょうか。 (新たなソフトのインストールなどもしていません) こうすればよい、ここの設定をみてみるべし、などというアドバイスありましたら、よろしくお願いします。