• 締切済み

MFCアプリケーションでアイコンが正しく表示されない

Viisual C++ 6.0 を使ってMFCのSDIアプリケーションを作っているのですが アプリケーションを起動したときにメインウィンドウの左上に表示される はずの小さいアイコンが正しく表示されなくて困っています。 (添付画像に示したように白い四角形が表示されます) なお、アイコンはVisual C++のリソースエディタで作っており、 エクスプローラから実行ファイルを閲覧するとアイコンは正しく表示されます。 (添付画像を参照)なぜメインウィンドウだけ正しく表示されないのでしょう? どうすればメインウィンドウの左上に正しいアイコンが表示されるでしょうか? AppWizardで新しくSDIアプリケーションのプロジェクトを作り直せば、 正しく表示されるようなのですが、これまで作ったソースを丸ごと移動させる のは手間がかかりそうなのでできればそれはしたくないのです。

みんなの回答

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.2

SDIということで CSingleDocTemplateクラスを作っていると思いますが そこにIDR_MAINFRAMEはありますか? ※いじった覚えが無いならあるはずですが。 ↓こんなの。 | pDocTemplate = new CSingleDocTemplate( |  IDR_MAINFRAME, |  RUNTIME_CLASS(C***Doc), |  RUNTIME_CLASS(CMainFrame), // メイン SDI フレーム ウィンドウ |  RUNTIME_CLASS(C***View)); SDIでドキュメントクラスからウィンドウを作成するとき、このIDからアイコンを読込みます。

tsuruharu
質問者

お礼

そこはいじったと思います。 今はこんなふうになっています。↓ // メイン ウインドウを作成するとき、このコードは新しいフレーム ウインドウ オブジェクトを作成し、 // それをアプリケーションのメイン ウインドウにセットします CMainFrame* pFrame = new CMainFrame; m_pMainWnd = pFrame; // フレームをリソースからロードして作成します pFrame->LoadFrame(IDR_MAINFRAME, WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL, NULL);

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>なお、アイコンはVisual C++のリソースエディタで作っており、 >エクスプローラから実行ファイルを閲覧するとアイコンは正しく表示されます。 作成したアイコンのIDなどはどうなっていますか? IDR_MAINFRAMEという名前のアイコンをリソースから読み込み、 ウィンドウのアイコンとして設定しているコードが自動生成されているかと思いますが。 なお、エクスプローラなどで表示されるアイコンは、「ファイル中のアイコンリソースでIDが一番小さいモノ」のはずです。

tsuruharu
質問者

補足

>IDR_MAINFRAMEという名前のアイコンをリソースから読み込み、 はい、IDR_MAINFRAMEになっています。

関連するQ&A