句柄是系统为资源分配内存的标识号。 相当于一个指针指向一块内存空间,我暂时理解成一个地址,一个门牌号

HWND 窗口句柄

HICON 图标句柄

HCURSOR 光标句柄

HBRUSH 画刷句柄

消息的结构体如下

/*
* Message structure
*/
typedef struct tagMSG {
HWND hwnd; //窗口句柄,用来标识窗口,指明这个消息是发给哪个窗口的
UINT message; //消息标示符,方便记忆定义为WM_XXX的形式(windows message)如WM_LBUTTONDOWN表示鼠标左键按下
WPARAM wParam; //指定消息的附加信息也就是上述的message的附加信息
LPARAM lParam; //同上,消息的附加信息
DWORD time; //消息投递到队列中的时间
POINT pt; //鼠标当前位置
#ifdef _MAC
DWORD lPrivate;
#endif
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;

消息分为进队消息和不进队消息,最终都被窗口过程函数处理。

WinMain是程序入口,结构如下:

WinMain(
HINSTANCE hInstance, //程序当前运行的实例的句柄(一个应用程序可以有多个实例,每运行一个实例就分配一个唯一的句柄值)
HINSTANCE hPrevInstance, //当前实例的句柄的前一个句柄,Win32状态下都为NULL
LPSTR lpCmdLine, //指定传递给应用程序的命令参数
int nShowCmd //指定应用窗口的显示情况(大小之类)
);

窗体类的结构体

typedef struct tagWNDCLASSW {
UINT style; //窗口样式 如CS_NOCLOSE 表示禁用系统菜单的关闭按钮
WNDPROC lpfnWndProc; //函数指针,指向窗口过程函数
int cbClsExtra; //表示附加窗口类内存空间,一般为0
int cbWndExtra; //表示附加窗口内存空间,一般为0
HINSTANCE hInstance; //窗口过程的程序的实例句柄
HICON hIcon; //窗口类的图标句柄,LoadIcon加载
HCURSOR hCursor; //窗口类的光标句柄,LoadCursor加载
HBRUSH hbrBackground; //窗口类的背景画刷句柄,GetStockObject获取,获取后需要进行转换(HBRUSH)
LPCWSTR lpszMenuName; //指定菜单资源的名字
LPCWSTR lpszClassName; //指定窗体类的名字
} WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW;

窗体类创建完成之后需要进行注册:RegisterClass(&wndcls);

注册完毕后就能创建窗口了。

由于时间问题,具体如何实现明天继续写~

VC++深入详解-第一章学习心得(一)的更多相关文章

  1. VC++深入详解-第一章学习心得(二)

    前面介绍到了注册窗口,接下来进行窗口的创建,利用CreateWindow函数,结构如下 CreateWindowExW( DWORD dwExStyle, LPCWSTR lpClassName, / ...

  2. VC++深入详解-第二章学习心得

    由于之前看过C++的一些知识,所以这一章就挑一点以前比较不太在意的进行记录 首先是虚函数,纯虚函数 虚函数用关键字virtual申明,我理解成为派生类提供覆盖 纯虚函数virtual xxx()=xx ...

  3. VC++深入详解-第五章学习心得

    这一章节主要讲解了文本相关的一些编程 插入符的使用 CreateSolidCaret(100,200);//插入符的宽度和高度 ShowCaret(); 插入符的一般使用方法 int CTestVie ...

  4. 孙鑫视频VC++深入详解学习笔记

    孙鑫视频VC++深入详解学习笔记 VC++深入详解学习笔记 Lesson1: Windows程序运行原理及程序编写流程 Lesson2: 掌握C++基本语法 Lesson3: MFC框架程序剖析 Le ...

  5. IIS负载均衡-Application Request Route详解第一篇: ARR介绍(转载)

    IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Applica ...

  6. 20172327 2018-2019-1 《第一行代码Android》第一章学习总结

    学号 2018-2019-1 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这 ...

  7. IIS负载均衡-Application Request Route详解第一篇: ARR介绍

    IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Applica ...

  8. Java 集合详解 | 一篇文章解决Java 三大集合

    更好阅读体验:Java 集合详解 | 一篇文章搞定Java 三大集合 好看的皮囊像是一个个容器,有趣的灵魂像是容器里的数据.接下来讲解Java集合数据容器. 文章篇幅有点长,还请耐心阅读.如只是为了解 ...

  9. 前端技术之_CSS详解第一天

    前端技术之_CSS详解第一天 一html部分 略.... 二.列表 列表有3种 2.1 无序列表 无序列表,用来表示一个列表的语义,并且每个项目和每个项目之间,是不分先后的. ul就是英语unorde ...

随机推荐

  1. ExtJS4.2学习(14)基于表格的扩展插件(2)(转)

    鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-26/184.html --------------- ...

  2. ANDROID_MARS学习笔记_S01原始版_014_WIFI

    一.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...

  3. linux下 修改配置文件的命令

    vi或vim 进入后,按i,屏幕下方会出现INSERT字样,此时可以修改内容 按ESC,退回命令模式 :x是保存退出 :q!是不保存退出

  4. 【HDOJ】1018 Big Number

    数学题,还是使用log避免大数,但是不要忘记需要+1,因为0也是1位,log(100)= 2,但却是3位. #include <stdio.h> #include <math.h&g ...

  5. find 日常使用

    find 查找文件 fidn 目录 参数 find ~ -type f find /log -name "root.log" find . -type f -exec ls -l ...

  6. sougou输入法小技巧

  7. visual studio 2012更换皮肤、功能添加

    首先在vs2012的菜单:工具->扩展和更新,打开扩展和更新窗口,点击左侧“联机”,搜索栏里面输入Theme Editor.然后点击按钮,安装之后,在工具->选项->环境常规 面板上 ...

  8. 【转】foxmail突然打不开了,双击没反应,怎么回事呀

    原文网址:http://tieba.baidu.com/p/3492526384 解决方法如下:1.进入foxmail安装目录(默认在D盘Program Files下层,右击foxmail这个文件夹, ...

  9. 【转】win7 旗舰版激活密钥

    原文网址:http://zhidao.baidu.com/question/1496641289562471179.html 旗舰版KH2J9-PC326-T44D4-39H6V-TVPBYTFP9Y ...

  10. java split函数用法(转)

    1.语法如下 String.split(sourceStr,maxSplit) String.split(sourceStr) 参数说明:sourceStr是被分割的字符串,maxSplit是最大的分 ...