ページ 11

Visual C++でタイトルバー左のアイコンを設定できない。

Posted: 2014年4月29日(火) 18:22
by namari
http://dixq.net/forum/viewtopic.php?f=3&t=2403
を参考にしながら、アイコンを設定してみました。

コード:

 
//resource.h
#define IDI_ICON1 102
#define IDI_ICON2 103

//resource.h
#include "resource.h"
IDI_ICON1 ICON "dat/img/icon.ico"
IDI_ICON2 ICON "dat/img/icon2.ico"

//main.cpp
#include "../include/resource.h"
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
        SetWindowIconID( IDI_ICON2 ); 
        if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
        while(ProcessLoop()==0){//メインループ
               ...
        }
}
結果としては、タスクバーではアイコンで表示され、出したexeはそのアイコンで設定されるのですが、
ウィンドウ左上のアイコンのみデフォルトのままとなってしまいます。
実はこの状態で放置していたんですが、最近またチャレンジしようと思い、また詰まってしまいました。
ですので、左上にアイコンを表示するヒントをいただけると嬉しいです。

おかしな点として、
・resource.hの画像読み込みをなくしてもアイコンが設定されたまま。(ログが残っているだけ?)
・imgファイル内のicon.ico、icon2.icoを別の画像で上書きしようとしたら強制的に上書き前の画像へと変更される。
といったところでしょうか。
もしかしたら、忘れているだけで、コード関係なく、VisualC++外部からアイコン設定する方法があったりして・・・?

Re: Visual C++でタイトルバー左のアイコンを設定できない。

Posted: 2014年4月30日(水) 05:18
by へにっくす
以下が参考になるでしょうか。
左上のアイコン-VCラウンジ

アイコンのサイズは32x32と16x16、両方用意してください。
それだけで出来なかったら、WM_SETICONメッセージを追加してみてください。