タイトルバーをアイコン化していきますが、
前回の「exeファイルにアイコンを設定する」をしていないと出来ません。
している人はソリューションエクスプローラの下の方に「resouce.h」があります。
していない人は
こちらへ
[0回]
TitleIconSet()関数の定義の場所に、
resouce.hとdglib2.hをインクルードしてください。
dg_setscreen()を呼んでから呼ぶようにしてください。
#include "resouce.h"
#include "dglib2.h"
/*~~~*/
void TitleIconSet(const char* _WindowName)
{
// ウインドウハンドルの取得
HWND hwnd;
hwnd=FindWindow(NULL,_WindowName);
// 取得失敗
if( hwnd==NULL ) return;
SetClassLong(
hwnd, // ウインドウハンドル
GCL_HICON, // 変更する値の種類(アイコン)
(LONG)LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(IDI_ICON1))
);
SetClassLong(
hwnd, // ウインドウハンドル
GCL_HICONSM, // 変更する値の種類(スモールアイコン)
(LONG)LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(IDI_ICON1))
);
}
// 使用例
main()
{
dg_setscreen(0,0,S_WIDTH,S_HEIGHT,0,"デジゼミ");
TitleIconSet("デジゼミ"); // ☆
while(1){/* ゲームループ */}
}
補足:
IDI_ICON1でエラーが出るかも知れません。
その時は、resouce.hに書いてある定義名を使ってみてください。
これはdglib用のアイコンの設定の仕方です。
WinMainから始まるプログラムの場合は、WNDCLASSEXを登録するときに出来ます。
apiなどを調べているとインスタンスハンドル・ウインドウハンドルなど難しい用語が
出てきますが、一年生の2Dの授業が終わってからwindowsの仕組みの授業を受けるので
不安にならなくてもいいです。現段階では、関数の中身を知らなくても使えれば大丈夫です。
2010では試していないです。出来なかったら報告頂けると嬉しいです。
余談:
関数ポインタのセミナーを開くかも?
byリーダ和田
PR
COMMENT