windows表單初始代碼注釋

來源:互聯網
上載者:User

 

WinMain

HELLOWIN.C

/*------------------------------------------------------------------------

HELLOWIN.C -- Displays "Hello, Windows 98!" in client area

(c) Charles Petzold, 1998

-----------------------------------------------------------------------*/

#include <windows.h>


LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;


int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

PSTR szCmdLine, int iCmdShow)

{

static TCHAR szAppName[] = TEXT ("HelloWin") ;

HWND hwnd ;

MSG msg ;

WNDCLASS wndclass ;


wndclass.style = CS_HREDRAW | CS_VREDRAW ; //使用或運算結合了兩個視窗類別別樣式標識符, CS_HREDROW 是水平方向 ,CS_VredRow是垂直方向

wndclass.lpfnWndProc = WndProc ; //視窗訊息處理常式的地址
///////////////預留額外空間////////////////
wndclass.cbClsExtra = 0 ;

wndclass.cbWndExtra = 0 ;
/////////////////////////////////////

wndclass.hInstance = hInstance ;//程式執行實體控制代碼

wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; //設定一個表徵圖

wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;//設定游標

wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH) ;//設定背景色

wndclass.lpszMenuNam = NULL ;//視窗類別別菜單

wndclass.lpszClassName= szAppName ;//視窗訊息處理常式的名稱


if (!RegisterClass (&wndclass))

{

MessageBox ( NULL, TEXT ("This program requires Windows NT!"),

szAppName, MB_ICONERROR) ;

return 0 ;

}

hwnd = CreateWindow( szAppName, // window class name

TEXT ("The Hello Program"), // window caption

WS_OVERLAPPEDWINDOW, // window style

CW_USEDEFAULT,// initial x position 左上方x

CW_USEDEFAULT,// initial y position 左上方y

CW_USEDEFAULT,// initial x size 寬度

CW_USEDEFAULT,// initial y size 高度

NULL, // parent window handle

NULL, // window menu handle

hInstance, // program instance handle

NULL) ; // creation parameters



ShowWindow (hwnd, iCmdShow) ;

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)

{

HDC hdc ;

PAINTSTRUCT ps ; //包含一些視窗訊息處理程式序,可以用來更新顯示地區的內容。

RECT rect ;



switch (message)

{

case WM_CREATE:

PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;

return 0 ;


case WM_PAINT:

hdc = BeginPaint (hwnd, &ps) ;



GetClientRect (hwnd, &rect) ;



DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,

DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;

EndPaint (hwnd, &ps) ;

return 0 ;



case WM_DESTROY:

PostQuitMessage (0) ;

return 0 ;

}

return DefWindowProc (hwnd, message, wParam, lParam) ;

}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.