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

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. BZOJ 1735: [Usaco2005 jan]Muddy Fields 泥泞的牧场

    Description 大雨侵袭了奶牛们的牧场.牧场是一个R * C的矩形,其中1≤R,C≤50.大雨将没有长草的土地弄得泥泞不堪,可是小心的奶牛们不想在吃草的时候弄脏她们的蹄子.  为了防止她们的蹄 ...

  2. 同步两台linux服务器时间同步方案

    Linux自带了ntp服务 -- /etc/init.d/ntpd,这个服务不仅可以设置让本机和某台/某些机器做时间同步,他本身还可以扮演一个time server的角色,让其他机器和他同步时间. 配 ...

  3. easyui源码翻译1.32--Pagination(分页)

    前言 使用$.fn.pagination.defaults重写默认值对象下载该插件翻译源码 该分页控件允许用户导航页面的数据.它支持页面导航和页面长度选择的选项设置.用户可以在分页控件上添加自定义按钮 ...

  4. RxJava开发精要4 – Observables过滤

    原文出自<RxJava Essentials> 原文作者 : Ivan Morgillo 译文出自 : 开发技术前线 www.devtf.cn 转载声明: 本译文已授权开发者头条享有独家转 ...

  5. 点点滴滴-NET下的常用框架

    刘冬的博客:http://www.cnblogs.com/GoodHelper/category/214139.html (Spring.net和Nhibernate) Kyo-yo  : http: ...

  6. Android:WebView深入使用

    webView = (WebView) findViewById(R.id.info_detail_webview); WebSettings webSettings = webView.getSet ...

  7. WCF - IIS Hosting

    WCF - IIS Hosting Hosting a WCF service in IIS (Internet Information Services) is a step-by-step pro ...

  8. 软件介绍(apache lighttpd nginx)

    一.软件介绍(apache  lighttpd  nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多 ...

  9. c语言实用功能库函数#include<stdlib.h>

    实用函数<stdlib.h> 在头文件<stdlib.h>中说明了用于数值转换.内存分配以及具有其他相似任务的函数. 1 atof #include <stdlib.h& ...

  10. C# 配置文件读取与修改

    C# 配置文件读取与修改   配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件. 两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用 ...