Page001
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[StartPage]]
* Windows Program の骨子 [#a12d9a67]
まず、非常に簡単な Window program を作ってみよう。
以下のファイルを myapp01.cpp として保存するものとする。
#include <windows.h>
#include <tchar.h>
#define MY_WINCLASS _T("MyAppWin")
#define MY_APPTITLE _T("My Application")
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPre...
LPSTR lpCmdLine, int nCmdShow)
{
// Register the Window Class
if(hPrevInstance == 0)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(0, IDI_APPLICATION);
wcex.hCursor = LoadCursor(0, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = 0;
wcex.lpszClassName = MY_WINCLASS;
wcex.hIconSm = LoadIcon(0, IDI_APPLICATION);
RegisterClassEx(&wcex);
}
// Create Window
HWND hWnd = CreateWindow(MY_WINCLASS, MY_APPTITLE, WS_O...
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 0, 0, hInstance, 0);
if(!hWnd)
return 0;
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
// Message Loop
MSG msg;
while(GetMessage(&msg, 0, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM...
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
これを MinGW でコンパイルしてリンクするには、
g++ -mwindows myapp01.cpp
とすればよい。Windows の場合は、これで a.exe ができる。こ...
#ref("myapp.png");
のような Window が開く。
終了行:
[[StartPage]]
* Windows Program の骨子 [#a12d9a67]
まず、非常に簡単な Window program を作ってみよう。
以下のファイルを myapp01.cpp として保存するものとする。
#include <windows.h>
#include <tchar.h>
#define MY_WINCLASS _T("MyAppWin")
#define MY_APPTITLE _T("My Application")
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPre...
LPSTR lpCmdLine, int nCmdShow)
{
// Register the Window Class
if(hPrevInstance == 0)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(0, IDI_APPLICATION);
wcex.hCursor = LoadCursor(0, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = 0;
wcex.lpszClassName = MY_WINCLASS;
wcex.hIconSm = LoadIcon(0, IDI_APPLICATION);
RegisterClassEx(&wcex);
}
// Create Window
HWND hWnd = CreateWindow(MY_WINCLASS, MY_APPTITLE, WS_O...
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 0, 0, hInstance, 0);
if(!hWnd)
return 0;
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
// Message Loop
MSG msg;
while(GetMessage(&msg, 0, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM...
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
これを MinGW でコンパイルしてリンクするには、
g++ -mwindows myapp01.cpp
とすればよい。Windows の場合は、これで a.exe ができる。こ...
#ref("myapp.png");
のような Window が開く。
ページ名: