MFC WNDCLASSEX结构
来源:互联网 发布:京东商城app源码 编辑:程序博客网 时间:2024/06/06 14:08
typedef struct{
UINT cbSize;
UINT style;
WNDPROC IpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
HICON hIconSm;
}WNDCLASSEX,*PWNDCLASSEX;
Members
cbSize: WNDCLASSEX的大小,可以用sizeof(WNDCLASSEX)来获得准确的值.
style: 从这个窗口类派生的窗口具有的风格.可用“or”把几种风格或到一起。(一组标志位的组合.定义比如窗口位置,设备上下文(DC)分配,双击处理等特征)
a : CS_NOCLOSE 如果指定了CS_NOCLOSE标志,则窗口上得关闭按钮和系统菜单上的关闭命令失效.
b: CS_HREDRAW,CS_VREDRAW
CS_HREDRAW标志表示当窗口的水平尺寸(宽度)改变的时候,重画整个窗口,CS_VREDRAW则是在窗口垂直尺寸(高度)改变时重画整个窗口。按钮和滚动条都有这两种风格.
d:CS_DBLCLKS 标志使窗口可以检测到双击事件,窗口响应双击的细节如下:
(1)如果窗口没有CS_DBCLKS标志,系统向窗口依次发送如下信息:
VM_LBUTTONDOWN
VM_LBUTTONUP
VM_LBUTTONDOWN
VM_LBUTTONUP
其实相当于两个单击。
(2)如果窗口有CS_DBLCLKS标志,则系统向窗口依次发送如下消息:
VM_LBUTTONDOWN
VM_LBUTTONUP
VM_LBUTTONDBLCLK
VM_LBUTTONUP
一般的情况下,如果没有指定CS_DBLCLKS,在窗口的消息循环里将不会得到VM_LBUTTONDBLCLK消息.
lpfnWndProc成员保存了该窗口类的窗口过程地址.该窗口类的所有窗口都使用该过程地址,对于从该类创建的窗口,系统将所有相关的消息交给此窗口过程来处理,窗口过程实现窗口的功能,程序可以使用SetClassLong函数来改变窗口类的窗口过程,这个操作叫"子类化"(Subclassing)。当程序改变了该过程的地址时,在改变前已经创建的窗口还是原来的地址,而以后创建的窗口才使用新的过程地址。
cbClsExtra,cbWndExtra:
cbClsExtra成员指明为每个窗口类分配的额外数据量,cbWndExtra成员则是指明为每个窗口实例分配的额外数据量,如果程序不需要分配额外的数据,这两个成员的值都应该设置为0,以免产生不确定的数,而使系统进行错误分配,如果是负数,则该窗口类将不会被注册.
hInstance 成员标识类所在的模块,此成员可以为进程的hlnstance,或DLL的hlnstance ,但不可以为NULL.
lcon 成员标识此窗口类的图标,程序一般使用Loadicon,从系统标准图标库(如IDI_APPLICATION)或用户指定的图标资源中来获取一个图标句柄.如果hlcon的值为NULL,当系统给程序发送VM_ICONERASEBKGND消息的时候,程序给窗口画上程序的图标.
- MFC WNDCLASSEX结构
- WNDCLASSEX结构
- WNDCLASS(WNDCLASSEX)结构介绍
- WNDCLASSEX结构赋值问题
- WNDCLASSEX
- 窗口类结构体WNDCLASSEX介绍
- Win32学习笔记 - WNDCLASSEX结构体
- 关于WNDCLASSEX结构体中cbWndExtra成员的作用
- cbClsExtra GetClassInfo或GetClassInfoEx可以获取WNDCLASS或者WNDCLASSEX结构
- WNDCLASSEX Structure
- MFC结构
- WIN32 API WNDCLASSEX style ->
- 关于WNDCLASSEX窗口类
- MFC文档视图结构
- MFC的文档结构
- MFC结构简介
- MFC程序组织结构
- MFC基本层次结构
- Union 和 Union All 《转》
- ubuntu中解压.tgz出错的解决方法
- 微软发布会前新平板Xbox Surface规格泄露
- 宏方法破解Excel工作表保护
- PostgreSQL 服务win7下启动后又停止的问题解决
- MFC WNDCLASSEX结构
- Linux中文件操作
- Blend实例中文教程系列文章汇总
- ??
- oradebug的使用
- #pragma 指令
- (转)DirectX、Directshow
- poj 2636 Electrical Outlets
- JSF入门