最简单的windows 程序

[cpp] view plain copy print?
/*以下为典型Windows窗口应用程序框架*/  
// Win32 大多数API,包含在windows.h头文件中  
#include <windows.h>  
// 窗口函数声明  
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);  
// 应用程序入口函数,参数由系统传入  
int WINAPI WinMain(  
                   HINSTANCE hInstance,     // 程序实例句柄(线索)  
                   HINSTANCE hPrevInstance, // 为保持与Win16兼容的句柄  
                   LPSTR     lpCmdLine,     // 命令行参数  
                   int       nCmdShow       // 初始化窗口显示方式  
                   )  
{  
    LPCTSTR lpszProviderClass = __TEXT("MyWndClass");  

    WNDCLASS WndClass;   // 窗口类,可为WNDCLASS  
    MSG      Msg;        // Windows 消息  
    HWND     hWnd;       // 窗口句柄  
    // 窗口类的定义  
    WndClass.style = CS_HREDRAW|CS_VREDRAW;      // 窗口类型  
    WndClass.lpfnWndProc = (WNDPROC)WndProc;     // 指定窗口处理函数  
    WndClass.cbClsExtra = NULL;                  // 窗口类无扩展  
    WndClass.cbWndExtra = NULL;                  // 窗口实例无扩展  
    WndClass.hInstance = hInstance;              // 窗口类所属实例    
    WndClass.hIcon = LoadIcon(NULL,IDI_APPLICATION);// 窗口最小化图标,为默认图标  
    WndClass.hCursor = LoadCursor(NULL,IDC_ARROW);  // 用箭头作为鼠标图标  
    WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 以白色作为窗口颜色  
    WndClass.lpszMenuName = NULL; // 窗口无菜单  
    WndClass.lpszClassName = lpszProviderClass; // 窗口类名  

    // 注册窗口类  
    if(!RegisterClass(&WndClass))  
    {  
        MessageBeep(0); // 如注册失败则发出警告  
        return FALSE;  
    }  

    // 创建窗口  
    hWnd = CreateWindow(  
        lpszProviderClass,    // 注册的窗口类名  
        __TEXT("Hello Windows!"),    // 窗口标题名  
        WS_OVERLAPPEDWINDOW,  // 窗口的风格  
        CW_USEDEFAULT, // 窗口左上角的X坐标,取默认值  
        CW_USEDEFAULT, // 窗口左上角的Y坐标,取默认值  
        CW_USEDEFAULT, // 窗口右下角的X坐标,取默认值  
        CW_USEDEFAULT, // 窗口右下角的Y坐标,取默认值  
        NULL,          // 此窗口无父窗口  
        NULL,          // 菜单句柄(此处无)  
        hInstance,     // 程序实例句柄  
        NULL           // 指向一个传递给窗口的指针型参数,此处设置为空  
        );  

    if(!hWnd) // 创建窗口失败,返回FALSE  
    {  
        return FALSE;  
    }  

    ShowWindow(hWnd, nCmdShow); // 显示窗口  
    UpdateWindow(hWnd);          // 刷新窗口  

    // 消息循环  
    while(GetMessage(&Msg, NULL, 0, 0))  
    {  
        TranslateMessage(&Msg);  // 翻译消息  
        DispatchMessage(&Msg);   // 将消息传递给处理函数  
    }  

    return Msg.wParam;            // 返回消息的附加参数  
}  

// 消息处理函数,每当有与本窗口相关的用户交互时,系统调用此回调函数进行处理  
LRESULT CALLBACK WndProc(  
                         HWND     hWnd,     // 窗口句柄  
                         UINT     nMessage, // 接受到的待处理的消息ID  
                         WPARAM   wParam,   // 消息附参数  
                         LPARAM   lParam    // 消息附参数  
                         )  
{  
    switch(nMessage)  
    {  
        // 处理用户感兴趣的消息  
        // 响应WM_CREATE消息  
    case WM_CREATE:  
        MessageBox(hWnd, __TEXT("收到WM_CREATE消息!"), __TEXT("通知"), MB_OK);  
        break;  

        // 响应WM_LBUTTONDOWN消息  
    case WM_LBUTTONDOWN:  
        MessageBox(hWnd, __TEXT("收到WM_LBUTTONDOWN消息!"), __TEXT("通知"), MB_OK);  
        break;  

        // 响应WM_CHAR消息  
    case WM_CHAR:  
        TCHAR buffer[30];  
        wsprintf(buffer, __TEXT("你刚才按下了%c键!"), wParam);  
        MessageBox(hWnd, buffer, __TEXT("通知"), MB_OK);  
        break;  

        // 响应WM_DESTROY消息  
    case WM_DESTROY:  
        PostQuitMessage(0); // 发出WM_QUIT消息退出  
        break;  

        // 调用系统默认处理函数DefWindowProc()  
    default:  
        return DefWindowProc(hWnd,nMessage,wParam,lParam);  
    }  

    return FALSE; // 用户处理后返回,将控制权交由系统。  
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值