当前位置: 首页 > 编程语言 > C++ > 正文

Win32开发入门(3) 窗口的重绘

时间:2013-06-05 csdn IT黄老邪

我们今天来吹一下关于窗口重绘的事情,在开始吹牛之前,我们先用上一篇博文中说到的方法写一 个简单的Win32应用程序。代码如下:

#include <Windows.h>     

//先声明一下消息处理函数     
LRESULT CALLBACK MyWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);     

// 入口点     
int CALLBACK WinMain(     
    HINSTANCE hInstance,     
    HINSTANCE hPrvInstance,     
    LPSTR lpCommandLine,     
    int cmdShow)     
{     
    WCHAR* cln = L"MyApp";     
    //设计窗口类     
    WNDCLASS wc = {};     
    wc.hInstance = hInstance;     
    wc.lpszClassName = cln;     
    wc.lpfnWndProc = MyWindowProc;     
    //注册窗口类     
    RegisterClass(&wc);     
    // 创建窗口     
    HWND hMainwind = CreateWindow(     
        cln,     
        L"绘制窗口",     
        WS_OVERLAPPEDWINDOW,     
        20,     
        12,     
        450,     
        300,     
        NULL,     
        NULL,     
        hInstance,     
        NULL);     
    // 显示窗口     
    if(hMainwind == NULL)     
        return 0;     
    ShowWindow(hMainwind,SW_NORMAL);     
    // 消息循环     
    MSG msg;     
    while(GetMessage(&msg,NULL,0,0))     
    {     
        TranslateMessage(&msg);     
        DispatchMessage(&msg);     
    }     
    return 0;     
}

// 窗口消息处理程序     
LRESULT CALLBACK MyWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)     
{     
    switch(msg)     
    {     
    case WM_PAINT:     
        break;     
    case WM_DESTROY:     
        PostQuitMessage(0);//退出程序     
        return 0;     
    default:     
        return DefWindowProc(hwnd,msg,wParam,lParam);     
    }     
}

这个程序是可以正常运行的,我们先来运行一下,看看有什么效果,当然没什么效果,因为 只是一个空白窗口。