day70-----win32-windows的窗口程序框架

本文介绍了一个简单的Windows窗口编程示例,展示了如何使用Win32 API创建窗口并进行消息处理。文章详细解释了WinMain函数的作用及参数含义,并通过实例演示了窗口类的定义和注册过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

window窗口编程,类似于linux下的socket编程,有一个固定的框架。
这个框架决定了窗口的属性,也提供了完整的消息机制。如下:
//头文件,这个头文件中包含了所有的头文件
#include <windows.h>
//Win32的入口函数,类似于标准c语言中的main函数,这是一个回调函数,由系统执行回调动作
//参数:
//hInstance:当前Win32进程的句柄
//hPreIns:上一个进程的句柄,参数已经废弃
//lpCmdLine:命令行参数
int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPreIns,LPSTR lpCmdLine,int nShowCmd){
    //窗口类,这是一个结构体,定义即将创建的窗口的属性,一共10个成员变量。
    WNDCLASS wc = {0};
    //窗口类附加数据缓存区
    wc.cbClsExtra = 0;
    //窗口附加数据缓存区
    wc.cbWndExtra = 0;
    //窗口背景颜色
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    //光标类型,NULL表示默认
    wc.hCursor = NULL;
    //图标类型,NULL表示默认
    wc.hIcon = NULL;
    //当前winMain函数的句柄
    wc.hInstance = hInstance;
    //消息处理函数
    wc.lpfnWndProc = WndProc;
    //窗口类名
    wc.lpszClassName = "Main";
    //菜单选项,NULL表示没有菜单
    wc.lpszMenuName = NULL;
    //窗口类风格
    wc.style = CS_HREDRAW|CS_VREDRAW;
    //向操作系统注册这个窗口类
    RegisterClass(&wc);
    //创建窗口
    HWND hWnd = CreateWindow(wc.lpszClassName,//窗口类名
                            "Window",//窗口名
                            WS_OVERLAPPEDWINDOW,//一般窗口风格
                            100,//窗口左上角横坐标
                            100,//窗口左上角纵坐标
                            700,//窗口宽度
                            500,//窗口高度
                            NULL,
                            NULL,
                            hInstance,//WinMain函数的句柄
                            0
                            );
    //显示这个窗口
    ShowWnd(hWnd,SW_SHOW);
    //消息结构体,用于存放系统传递过来的消息
    MSG nMsg = {0};
    //消息循环
    while(GetMessage(&nMsg,NULL,0,0)){
        //翻译消息
        TranslateMessage(&nMsg);
        //派发消息
        DispatchMessage(&nMsg);
    }
    return 0;
}
//消息处理函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT msgId,WPARAM wParam,LPARAM lParam){ 
    return DefWindowProc(hwnd,msgId,wParam,lParam);//系统默认的消息处理函数
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值