MFCでSDIのアプリケーションを作っている初心者です。
開発環境はWindows2000 VisualC++6.0です。
アプリケーションを起動中にAlt + Tab キーでアプリケーションを切り替えする時に表示され
るアイコンを特定のアイコンにしたいのですが、やり方がわかりません。
今はウィンドウズのスタートボタンのアイコンが表示されています。
自分で調べてみたのですが、AppクラスのInitInstance()内で何か関数を使えばいいのでしょ
うか?
初心者で基本的なこともわかっていないかもしれませんが、アドバイスして頂きたいと思いま
す。宜しくお願いします。
SDIならば何も変更しなければ、
IDR_MAINFRAMEのアイコンが表示されるはずですけど…
設定する場合はメインウィンドウが作成された後で、以下のようにします。
AfxGetMainWnd()->SetIcon(アイコン, TRUE);
dairygoodsさん、レスどうもです。
>設定する場合はメインウィンドウが作成された後で、以下のようにします。
>AfxGetMainWnd()->SetIcon(アイコン, TRUE);
SetIcon()の前に、LoadIcon()で使用したいIconを読み込んでみたんですが、うまくいきませ
ん。SetIcon()はC**AppクラスのInitInstance()で使用するんですよね?
> SetIcon()はC**AppクラスのInitInstance()で使用するんですよね?
いいと思います。
参考
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200305/03050044.txt
InitInstance()内でm_pMainWnd->SetIcon( LoadIcon(アイコンID), TRUE );
としたところ、コンパイルは通るのですがAlt + Tab で表示されるアイコンの表示は変わりま
せん。
これだけではAlt + Tab で表示されるアイコンは変わらないのでしょうか?
最後の引数をTRUEとFALSEで2度呼ばないといけないみたいですね。
(というかICON_BIGとICON_SMALLで。)
>最後の引数をTRUEとFALSEで2度呼ばないといけないみたいですね。
>(というかICON_BIGとICON_SMALLで。)
教えていただいた通りにやってみましたが、うまくいきません。
InitInstance()は以下のようにしてあります。
CMainFrame* pFrame = new CMainFrame;
// フレームをリソースからロードして作成します
pFrame->LoadFrame(IDR_DPMON_MAIN_MENU,
WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,
NULL);
pFrame->SetIcon( LoadIcon(IDR_MAINFRAME), ICON_SMALL );
pFrame->SetIcon( LoadIcon(IDR_MAINFRAME), ICON_BIG );
こっちではちゃんと変わるけど...何故だろう。
>今はウィンドウズのスタートボタンのアイコンが表示されています。
これ、ホントかなぁ。
HICON h = LoadIcon(IDR_MAINFRAME);
として、hは0以外の値になってます?
>HICON h = LoadIcon(IDR_MAINFRAME);
>として、hは0以外の値になってます?
hの値は0x000107bbです。
いろいろと手を加えてきたのでどこかがおかしくなっているのかも知れません。
もう一度プロジェクトを作り直して、やってみます。
解決しました。
もう一度プロジェクトを作り直して、InitInstance()内で
pFrame->SetIcon( LoadIcon(IDR_MAINFRAME),TRUE);にて
アイコン表示が変わりました。
今までにいろいろなところをいじっていたので、どこかがおかしくなっていたようです。
まだまだ勉強不足ですが、少しづつ上達していければと思います。
アドバイスを下さった方々、本当にありがとうございました。
チェック忘れてました。