HELLOWIN.C

來源:互聯網
上載者:User

 

代碼

/*------------------------------------------------------------------------
   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 ;
WNDCLAS wndclass ;

wndclass.style   = CS_HREDRAW | CS_VREDRAW ;
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
CW_USEDEFAULT, // initial y position
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) ;
}

 

 

 

  • LoadIcon 載入圖示供程式使用。
     
  • LoadCursor 載入滑鼠遊標供程式使用。
     
  • GetStockObject 取得一個圖形物件(在這個例子中,是取得繪製視窗背景的畫刷物件)。
     
  • RegisterClass 為程式視窗註冊視窗類別。
     
  • MessageBox 顯示訊息方塊。
     
  • CreateWindow 根據視窗類別建立一個視窗。
     
  • ShowWindow 在螢幕上顯示視窗。
     
  • UpdateWindow 指示視窗自我更新。
     
  • GetMessage 從訊息佇列中取得訊息。
     
  • TranslateMessage 轉譯某些鍵盤訊息。
     
  • DispatchMessage 將訊息發送給視窗訊息處理程式。
     
  • PlaySound 播放一個音效檔案。
     
  • BeginPaint 開始繪製視窗。
     
  • GetClientRect 取得視窗顯示地區的大小。
     
  • DrawText 顯示字串。
     
  • EndPaint 結束繪製視窗。
     
  • PostQuitMessage 在訊息佇列中插入一個「退出程式」訊息。
     
  • DefWindowProc 執行內定的訊息處理。

     

  • 聯繫我們

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