標籤:des style width 檔案 os line
#include<windows.h> // 編寫Windows程式必須包含的標頭檔
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); // 聲明視窗函數原型
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
HWND hwnd; // 定義視窗控制代碼
MSG msg; // 定義一個用來儲存訊息的變數
TCHAR lpszClassName[] = TEXT("視窗");
WNDCLASS wc; // 定義一個視窗類別變數
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = ::LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = ::LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = lpszClassName;
::RegisterClass(&wc); // 註冊視窗
hwnd= CreateWindow(lpszClassName, // 建立視窗
TEXT("Windows"),
WS_OVERLAPPEDWINDOW,
120,50,800,600,
NULL,
NULL,
hInstance,
NULL);
::ShowWindow(hwnd,SW_SHOWNORMAL); // 顯示視窗
::UpdateWindow(hwnd);
while(::GetMessage(&msg,NULL,0,0)) // 訊息迴圈
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
return msg.wParam;
}
// 處理訊息的視窗函數
LRESULT CALLBACK WndProc(HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
switch(message)
{
case WM_LBUTTONDOWN: // 滑鼠左鍵下訊息
{
::MessageBeep(0); // 可以發出聲音的API函數
}
break;
case WM_DESTROY:
::PostQuitMessage(0);
break;
default:
return ::DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
風 格 宏 |
解 釋 |
WS_border |
單線邊框 |
WS_caption |
有標題框的視窗(包括WS_BODER風格) |
WS_popup |
作為一個彈出式視窗 |
WS_child |
作為子表單(與WS_popup互斥) |
WS_disabled |
視窗不能初始化,並且屏蔽與使用者的互動 |
WS_dlgframe |
視窗的外觀類似與對話方塊 |
WS_group |
作為表單的控制項,可以與其他控制群組合 |
WS_hscroll |
視窗具有水平捲軸 |
WS_vscroll |
視窗具有垂直捲軸 |
WS_maximize |
初始狀態為最大化的視窗 |
WS_maximizebox |
視窗右上方有一個最大化按鈕 |
WS_minimize |
初始狀態為最小化的視窗 |
WS_minimizebox |
視窗右上方有一個最小化按鈕 |
WS_overlappedwindow |
這是一個宏組合。為了方便書寫,它等價於WS_overlapped|WS_caption|WS_sysmenu|WS_thickframe|WS_minimizebox|WS_maximizebox |
WS_overlapped |
邊框重疊的視窗 |
WS_sizebox |
視窗的邊框可以變化 |
WS_sysmenu |
在視窗的標題列的最左上方有一個視窗菜單 |
WS_tabstop |
視窗作為控制項,並且互動可以停留在這個控制項上 |
WS_visible |
視窗建立的初始狀態是可見的 |