windows 编译

本文详细介绍了Windows程序设计中窗口的创建、显示、消息循环和处理过程,包括注册窗口、创建窗口、窗口过程、消息的处理,如WM_CREATE、WM_PAINT和WM_DESTROY等关键消息。此外,还探讨了Windows程序与操作系统的交互,以及窗口生命周期和线程的诞生与死亡。

https://blog.youkuaiyun.com/guzhou_diaoke/article/details/8155171 整理于孤舟钓客以及其他的博客文章, 加了一点自己的理解, 只希望以后能够方便理解,学习;
能学到的内容:

  1. 基本窗口原理
  2. 位图读取
  3. 字体,按钮,背景更改
  4. 菜单,工具栏建立

windows窗口

windows系统是界面系统, 方便和用户交互而产生的。本文通过控制台来实现窗口这一过程来了解windows窗口的产生以及消息的循环;

//导入winmm.lib库,告诉编译器你要用到得winmm.lib库 
#pragma comment(lib, "winmm") 

#include<Windows.h>

//声明消息函数, 用于消息处理
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

//WINAPI是<Windows.h>的主函数
int WINAPI WinMain(HINSTANCE hInstance,  // 实例句柄 
                HINSTANCE hPrecInstance, // 前实例句柄
                PSTR szCmdLine,         // 命令参数
                int iCmdShow         //窗口初始化(最大最小化)
                )
{
    //全局变量 , 
    static TCHAR szAppName[] = TEXT("HelloWin32"); 
    HWND hwnd;  //窗口句柄 , 窗口的唯一标识
    MSG msg;   // 消息结构体
    WNDCLASS wndclass; //声明一个窗口类
    //初始化窗口;

    /* cbClsExtra :windows程序为每一个窗口设计类管理一个WNDCLASS结构。在应用程序注册一个窗口类的时候,可以让windows分配一定字节空间的内存,这部分内存成为类的附件内存,有属于这个窗口类的所有窗口共享,类附件内存信息用于存储窗口类的附加信息。windows系统将这部分内存初始化为0,因此我们经常设置此参数为0.
    cbWndExtra :windows程序为每一个窗口管理一个内部数据结构,在注册窗口类的时候,系统可以为每一个窗口分配一定的字节数的附加内存空间,称为窗口附件内存。应用程序可使用这部分内存存储窗口特有的数据,windows系统把这部分内存初始化为0 */
    wndclass.cbClsExtra = 0;
    wndclass.cbWndExtra = 0;
    wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 背景为白色   hbrBackground为函数指针
    wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);  //鼠标
    wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);//类图标
    wndclass.hInstance = hInstance;  //当前句柄
    wndclass.lpfnWndProc = WndProc;  //IpfnWndProc是函数指针,指向消息函数
    wndclass.lpszClassName = szAppName; 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值