2006年08月18日

ウィンドウの表示

とりあえずお決まりのウィンドウを表示するプログラム。
VC++ソースコードの、メインの大まかな構成は

1.ウィンドウクラスの登録
2.ウィンドウの作成、表示
3.メッセージの取得

とりあえずそのまま書いてビルドしてみよう。ちなみにVS.NET2003,VS2005で。


#include  

#define ClassName TEXT("Class1")
#define WindowName TEXT("WindowApplication")

//ウィンドウプロシージャ
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

//ウィンドウクラスの登録
ATOM InitApp(HINSTANCE);

//ウィンドウ作成
BOOL InitInst(HINSTANCE , int);

//メイン
int APIENTRY WinMain(HINSTANCE hInst ,
HINSTANCE hPrev ,
LPSTR lpCmdLine ,
int nCmdShow )
{
MSG msg;

if(!InitApp(hInst)) return FALSE;
if(!InitInst(hInst,nCmdShow)) return FALSE;

while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}

//ウィンドウクラスの登録
ATOM InitApp(HINSTANCE hInst)
{
WNDCLASSEX wc;

wc.cbSize = sizeof(WNDCLASSEX);
//ZeroMemory(&wc,sizeof(wc)); //ZeroMemoryでもOK
wc.cbWndExtra = wc.cbClsExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor = LoadCursor(0,IDC_ARROW);
wc.hIcon = LoadIcon(0,IDI_APPLICATION);
wc.hInstance = hInst;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = ClassName;
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.hIconSm = LoadIcon(0,IDI_APPLICATION);

return RegisterClassEx(&wc);
}

//ウィンドウの作成
BOOL InitInst(HINSTANCE hInst, int nCmdShow)
{
HWND hwnd;

hwnd = CreateWindowEx(0,
ClassName,WindowName,
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
100,200,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInst,NULL);

if(hwnd == NULL) return FALSE;

ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);

return TRUE;
}


//ウィンドウプロシージャ
LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp)
{
switch (msg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;

default:
return DefWindowProc(hwnd,msg,wp,lp);
}
return 0;
}

タグ:VC++
posted by aprico* at 11:27| 🌁| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2006年08月07日

とりあえずHelloWorld

とりあえず、メッセージボックスを使って「Hello World!」を出力してみる。


#include

int WINAPI WinMain(HINSTANCE hInst,
          HINSTANCE hPrev,
          LPSTR lpCmdShow,
          int nCmdSHow)
{
  MessageBox(NULL, TEXT("Hello World!"),TEXT("Message"),MB_OK);
  return 0;
}



posted by aprico* at 18:09| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

いまさらながらWin32API

いまさらながら、ここいらでちゃんとWin32APIをまとめてみようと思う。
タグ:VC++
posted by aprico* at 11:47| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする


□本家サイトhttp://cockydog.web.fc2.com/
□ソフトウェアに関するコメント(バグ、アドバイス、叱咤激励etc)はこちらまで

by apricoworks
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。