昨日(ってか、日付上は今日か)、寝れないから参考書見てプログラム作っていた。 Windowsの、こう…何ていうか、閉じるとか最小化とかのボタンの付いたプログラムを。 なんだか分かるようで分らないけれど、こういうプログラム作るには学校で習った知識だけでは足りなかったので、少し手間取ったけど。
と、言っても何をしてくれるわけでもない、ただ真っ白なプログラム。 作っておいて何だが、これを作って一体何の意味があるのか。 でも、少しずつでも進歩して、その実感を得ないと進めないかなと思い、参考書を見て、コンパイラが吐いたバグを直して作りあげてみた。
ま、今はこれが精一杯だけど、コツコツと進んでいくしかない。 それも何だか結構不安になるんだけどね。 ついでにせっかく作ったんだから追記にソースでも貼ってみるか。 /*何もしない真っ白なプログラム*/
#include<windows.h>
#define APP_NAME TEXT("whitewindow")
//ウインドウプロシジャー LRESULT CALLBACK WindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ){ switch(uMsg){ case WM_DESTROY: PostQuitMessage(0); return 0; } //基本的なメッセージの処理 return DefWindowProc(hWnd,uMsg,wParam,lParam); }
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow ){ HWND hWnd; WNDCLASS wc; MSG msg;
//ウインドウクラス wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WindowProc; //ウインドウマネージャーの登録 wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; //インスタンスハンドル wc.hIcon = NULL; //アイコン wc.hCursor = NULL; //カーソル wc.hbrBackground = (HBRUSH)COLOR_BACKGROUND+1; //背景ブラシ wc.lpszMenuName = NULL; //メニュー名 wc.lpszClassName =APP_NAME; //クラス名
if(!RegisterClass(&wc)){ MessageBox(NULL, TEXT("ウィンドウクラスの作成に失敗しました"),NULL,MB_OK); return 0; }
//ウインドウの作成 hWnd=CreateWindow(APP_NAME,TEXT("window title"),WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100,100,400,300, /*ウィンドウ初期位置と横縦の幅*/ NULL,NULL,hInstance,NULL);
if(hWnd==NULL){ MessageBox(NULL,TEXT("ウィンドウの作成に失敗しました"),NULL,MB_OK); return 0; }
//メッセージループ while(GetMessage(&msg,NULL,0,0)>0){ DispatchMessage(&msg); }
return msg.wParam;
}
<>ってhtml上だと何か書き方違うんか。 つか、どうでもいいけどそのままコピペしたのにインデントされてないんだが('A`)まぁいいや
|