HelloWin程序(窗口与消息)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <windows.h>
#pragma comment(lib,"WINMM.LIB")
 
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
 
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    static TCHAR szAppName[] = TEXT ("Hello win");   //以0结尾字符串
    HWND  hwnd;
    MSG  msg;
    WNDCLASS    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.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
     
    wndclass.lpszMenuName = NULL;
    wndclass.lpszClassName = NULL;
 
    if(!RegisterClass(&wndclass))
    {
        MessageBox(NULL,TEXT("this program is nt"),szAppName,MB_ICONERROR);
        return 0;
    }
 
    hwnd = CreateWindow(szAppName,
                        TEXT("The hello program"),
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        NULL,
                        NULL,
                        hInstance,
                        NULL);
 
    ShowWindow(hwnd,SW_SHOWNORMAL);
    UpdateWindow(hwnd);
 
    while(GetMessage(&msg,hwnd,NULL,NULL))
    {
        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 win2008"),-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);
}

 

posted @   persuit  阅读(228)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示