HANDLE LoadImage( HINSTANCE hinst, // イメージを含むアプリケーションのハンドル LPCTSTR lpszName, // イメージのIDか名前 UINT uType, // イメージの種類 int cxDesired, // 横幅 int cyDesired, // 高さ UINT fuLoad // 読み込むときの設定フラグ ); | |
hinst | イメージを持つアプリケーションの、インスタンスハンドルを指定します。OSのイメージを指定するときはNULLを入れます |
lpszName | イメージの名前、あるいはIDをMAKEINTRESOURCEマクロで文字列に変換したもの。イメージのファイル名も可能です。 |
uType | イメージの種類を指定します。ビットマップ:IMAGE_BITMAP、カーソル:IMAGE_CURSOR、アイコン:IMAGE_ICON です。 |
cxDesired | イメージの横幅を指定します。 |
cyDesired | イメージの高さを指定します。 |
fuLoad | イメージを読み込むときに、どんな感じで読み込むかを設定します。詳しくは後述します。 |
戻り値 | 成功すれば読み込んだイメージのハンドルが返ります。そしてこれを任意の型にキャストします。 |
fuLoadに入れるフラグ | |
---|---|
LR_DEFAULTCOLOR | デフォルトのフラグです。白黒でないことを意味します。 |
LR_CREATEDIBSECTION | ビットマップをロードするときに、DIBセクションビットマップでロードします。 |
LR_DEFAULTSIZE | アイコンやカーソルをシステム標準サイズでロードします。ただしcxDesiredとcyDesiredを0に指定する必要があります。 |
LR_LOADFROMFILE | lpszNameの指すファイルからイメージをロードします。このフラグを使わない場合、リソースからロードします。 |
LR_LOADMAP3DCOLORS | イメージ内の特定の灰色をシステムの3Dカラーに変換します。 ダークグレー(128,128,128)→COLOR_3DSHADOW グレー(192,192,192)→COLOR_3DFACE ライトグレー(223,223,223)→COLOR_3DLIGHT |
LR_LOADTRANSPARENT | イメージ内の最初のピクセルの色を、COLOR_WINDOWに変換します。LR_LOADMAP3DCOLORSと一緒に指定すると、COLOR_3DFACEに変換されます。 |
LR_MONOCHROME | イメージを白黒でロードします。 |
LR_SHARED | イメージハンドルを共有します。つまり同じリソースをロードする場合、同じハンドルが返ってきます。 |
#include <windows.h> #include "resource.h" ///// プロトタイプ宣言 int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int); LRESULT CALLBACK WindowProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp); ///// 変数宣言 const char *strClassName="SAMPLE"; // ウィンドウクラスの名前 const char *strTitle="サンプル"; // タイトル ///// WinMain int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { // ウィンドウクラスの登録 WNDCLASSEX wcx; wcx.cbSize = sizeof(WNDCLASSEX); wcx.style = CS_DBLCLKS; // ダブルクリック検知 wcx.lpfnWndProc = WindowProc; wcx.cbClsExtra = 0; wcx.cbWndExtra = 0; wcx.hInstance = hInstance; wcx.hIcon = (HICON)LoadImage(hInstance,MAKEINTRESOURCE(IDI_ICON) ,IMAGE_ICON , 0, 0,LR_DEFAULTCOLOR); // アイコン wcx.hIconSm = (HICON)LoadImage(hInstance,MAKEINTRESOURCE(IDI_ICON) ,IMAGE_ICON ,16,16,LR_DEFAULTCOLOR); // 小さいアイコン wcx.hCursor = (HCURSOR)LoadImage(hInstance,MAKEINTRESOURCE(IDC_CURSOR) ,IMAGE_CURSOR, 0, 0,LR_DEFAULTCOLOR); // カーソル wcx.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); // ウィンドウ背景色 wcx.lpszMenuName = NULL; wcx.lpszClassName = strClassName; if(!RegisterClassEx(&wcx)) return 0; // クラス登録 // ウィンドウ作成 HWND hwnd; hwnd=CreateWindowEx(NULL,strClassName,strTitle,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,320,240, HWND_DESKTOP,NULL,hInstance,NULL); if(!hwnd) return 0; ShowWindow(hwnd,nCmdShow); // Window表示 // メッセージループ MSG msg; while(GetMessage(&msg,NULL,0,0)) // WM_QUITが来ると終わり { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } ///// ウィンドウプロシージャ やっぱりこっから下は特に変わっていません。 また分かりやすいように、ウィンドウクラスのメンバの順序を少し変えてみました。 |
![]() |
システム標準色 | |
---|---|
COLOR_SCROLLBAR | スクロールバーの背景の色 |
COLOR_BACKGROUND | デスクトップの背景色。標準は緑っぽい。 |
COLOR_ACTIVECAPTION | アクティブウィンドウのタイトルバー色。標準は青い |
COLOR_INACTIVECAPTION | 非アクティブウィンドウのタイトルバー色。 |
COLOR_MENU | メニューの色。 |
COLOR_WINDOW | ウィンドウの色。標準は白い。 |
COLOR_WINDOWFRAME | 枠の色。標準は黒いです。 |
COLOR_MENUTEXT | メニューの文字色。 |
COLOR_WINDOWTEXT | ウィンドウの文字色。 |
COLOR_CAPTIONTEXT | タイトルバーの文字色。 |
COLOR_ACTIVEBORDER | アクティブウィンドウの太い枠の色。 |
COLOR_INACTIVEBORDER | 非アクティブウィンドウの太い枠の色。 |
COLOR_APPWORKSPACE | MDIアプリケーションの背景色。標準はちょっと灰色。 |
COLOR_HIGHLIGHT | 文字を選択したときの背景色。 |
COLOR_HIGHLIGHTTEXT | 文字を選択したときの文字色。 |
COLOR_BTNFACE | ボタンの上の色。 |
COLOR_BTNSHADOW | ボタンの陰の色。 |
COLOR_GRAYTEXT | ボタンが選択できないときの文字色。 |
COLOR_BTNTEXT | ボタンの文字色。 |
COLOR_INACTIVECAPTIONTEXT | 非アクティブウィンドウの文字色。 |
COLOR_BTNHIGHLIGHT | ボタン押してるときの色。 |
COLOR_3DDKSHADOW | 3Dオブジェクトの陰の色。 |
COLOR_3DLIGHT | 3Dオブジェクトの色。 |
COLOR_INFOTEXT | ツールチップの文字色。 |
COLOR_INFOBK | ツールチップの背景色。標準は黄色っぽい。 |
COLOR_HOTLIGHT | ? |
COLOR_GRADIENTACTIVECAPTION | ? |
COLOR_GRADIENTINACTIVECAPTION | タイトルバーがグラデーションしてるときの右の方の色。 |