windows筆記-一個簡單的windows GUI應用程式

來源:互聯網
上載者:User

標籤: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 視窗建立的初始狀態是可見的
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.