アプリ版:「スタンプのみでお礼する」機能のリリースについて

Viisual C++ 6.0 を使ってMFCのSDIアプリケーションを作っているのですが
アプリケーションを起動したときにメインウィンドウの左上に表示される
はずの小さいアイコンが正しく表示されなくて困っています。
(添付画像に示したように白い四角形が表示されます)

なお、アイコンはVisual C++のリソースエディタで作っており、
エクスプローラから実行ファイルを閲覧するとアイコンは正しく表示されます。
(添付画像を参照)なぜメインウィンドウだけ正しく表示されないのでしょう?

どうすればメインウィンドウの左上に正しいアイコンが表示されるでしょうか?
AppWizardで新しくSDIアプリケーションのプロジェクトを作り直せば、
正しく表示されるようなのですが、これまで作ったソースを丸ごと移動させる
のは手間がかかりそうなのでできればそれはしたくないのです。

「MFCアプリケーションでアイコンが正しく」の質問画像

A 回答 (2件)

SDIということで



CSingleDocTemplateクラスを作っていると思いますが
そこにIDR_MAINFRAMEはありますか?
※いじった覚えが無いならあるはずですが。

↓こんなの。

| pDocTemplate = new CSingleDocTemplate(
|  IDR_MAINFRAME,
|  RUNTIME_CLASS(C***Doc),
|  RUNTIME_CLASS(CMainFrame), // メイン SDI フレーム ウィンドウ
|  RUNTIME_CLASS(C***View));

SDIでドキュメントクラスからウィンドウを作成するとき、このIDからアイコンを読込みます。
    • good
    • 0
この回答へのお礼

そこはいじったと思います。
今はこんなふうになっています。↓

// メイン ウインドウを作成するとき、このコードは新しいフレーム ウインドウ オブジェクトを作成し、
// それをアプリケーションのメイン ウインドウにセットします
CMainFrame* pFrame = new CMainFrame;
m_pMainWnd = pFrame;

// フレームをリソースからロードして作成します
pFrame->LoadFrame(IDR_MAINFRAME,
WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,
NULL);

お礼日時:2009/10/03 16:44

>なお、アイコンはVisual C++のリソースエディタで作っており、


>エクスプローラから実行ファイルを閲覧するとアイコンは正しく表示されます。

作成したアイコンのIDなどはどうなっていますか?

IDR_MAINFRAMEという名前のアイコンをリソースから読み込み、
ウィンドウのアイコンとして設定しているコードが自動生成されているかと思いますが。

なお、エクスプローラなどで表示されるアイコンは、「ファイル中のアイコンリソースでIDが一番小さいモノ」のはずです。

この回答への補足

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

補足日時:2009/10/03 02:26
    • good
    • 0

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