プログラム メモ
ウィンドウの作成
最終更新:
memoprogram
-
view
ウインドウの作成
ウインドウの作成は以下の順で行われる。
- WNDCLASS構造体の初期化
- WNDCLASS構造体の登録
- ウィンドウの生成
- ウィンドウの表示
サンプルプログラム
- #pragma comment(lib, "winmm.lib") // Win32API拡張に必要
- #include <Windows.h> // Win32APIの呼出しに必要
-
- int WINAPI WinMain(
- HINSTANCE hInstance,
- HINSTANCE hPrevInstace,
- LPSTR lpCmdLine,
- int nCmdShow
- ){
- //-----------------------------------------------------------------------------
- // WNDCLASS構造体の初期化
- //-----------------------------------------------------------------------------
- WNDCLASS windowclass; //WNDCLASS構造体の宣言
-
- // ウィンドウクラス設定
- windowclass.style = CS_HREDRAW | CS_VREDRAW; // ウィンドウのスタイル
- windowclass.lpfnWndProc = DefWindowProc; //ウィンドウプロージャの関数
- windowclass.cbClsExtra = 0; // 使わないので0
- windowclass.cbWndExtra = 0; // 使わないので0
- windowclass.hInstance = NULL; // ウィンドウを登録するアプリケーションのインハンスハンドル
- windowclass.hIcon = NULL; // ウィンドウのアイコン。NULLの場合には標準のアイコンが表示
- windowclass.hCursor = NULL; // カーソル。NULLの場合には標準のアイコンが表示
- windowclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND + 1; // ブラシ情報
- windowclass.lpszMenuName = NULL; // メニューの名前
- windowclass.lpszClassName = "ウィンドウの名前"; // この構造体に割り当てるクラス名
-
- //-----------------------------------------------------------------------------
- // WNDCLASS構造体の登録
- //-----------------------------------------------------------------------------
- if (!RegisterClass(&windowclass)){
- // エラー処理
- retren 0;
- }
-
- //-----------------------------------------------------------------------------
- // ウィンドウの生成
- //-----------------------------------------------------------------------------
- HWND hWnd; //ウインドウハンドル構造体の宣言
-
- hWnd = CreateWindow(
- windowclass.lpszClassName, // ウィンドウクラスの登録で割り当てたクラス名
- "Title", // ウィンドウのタイトル
- WS_OVERLAPPEDWINDOW, // ウィンドウの種類、状態の設定
- CW_USEDEFAULT, // ウィンドウのX座標
- CW_USEDEFAULT, // ウィンドウのY座標
- CW_USEDEFAULT, // ウィンドウの横幅
- CW_USEDEFAULT, // ウィンドウの縦幅
- NULL, // 子ウィンドウ使用の際に設定
- NULL, // 子ウィンドウ使用の際に設定
- windowclass.hInstance, // 登録するウィンドウインスタンス
- NULL); // ウィンドウが生成されようとしたときに実行する関数
-
- // ウィンドウクラスの作成に失敗したら例外処理を飛ばす
- if (hWnd == NULL){
- // エラー処理
- retren 0;
- }
-
- //-----------------------------------------------------------------------------
- // ウィンドウの表示
- //-----------------------------------------------------------------------------
- ShowWindow(hWnd, SW_SHOW);
- }
-