窗口类参数的意义

Windows程序设计——WNDCLASS结构参数及其用法 WNDCLASS结构参数及其用法 WNDCLASS是一个由系统支持的结构,用来储存某一类窗口的信息,如ClassStyle,消息处理函数,Icon,Cursor,背景Brush等。也就是说,CreateWindow只是将某个WNDCLASS定义的窗体变成实例。 结构WNDCLASS包含一个窗口类的全部信息,也是Windows编程中使用的基本数据结构之一,应用程序通过定义一个窗口类确定窗口的属性 基... 阅读详情

要WinMain登记窗口类,首先要填写一个WNDCLASS结构,其定义如下所示:

   typedef struct _WNDCLASSA

   {

     UINT style ;         //窗口类风格

     WNDPROC lpfnWndProc ;    //指向窗口过程函数的指针

     int cbClsExtra ;       //窗口类附加数据

     int cbWndExtra ;       //窗口附加数据

     HINSTANCE hInstance ;    //拥有窗口类的实例句柄

     HICON hIcon ;        //最小窗口图标

     HCURSOR hCursor ;      //窗口内使用的光标

     HBRUSH hbrBackground ;   //用来着色窗口背景的刷子

     LPCSTR lpszMenuName ;    //指向菜单资源名的指针

     LPCSTR lpszClassName ;   // 指向窗口类名的指针

   }

其中参数的意义如下:

(1)第一个参数:成员style控制窗口的某些重要特性,在WINDOWS.H中定义了一些前缀为CS的常量,在程序中可组合使用这些常量.也可把sytle设为0.本程序中为wc.style = CS_HREDRAW | CS_VREDRAW,它表示当窗口的纵横坐标发生变化时要重画整个窗口。你看:无论你怎样拉动窗口的大小,那行字都会停留在窗口的正中部,而假如把这个参数设为0的话,当改动窗口的大小时,那行字则不一定处于中部了。

(2)第二个参数:lpfnWndProc包括一个指向该窗口类的消息处理函数的指针,此函数称为窗口过程函数。它将接收Windows发送给窗口的消息,并执行相应的任务。其原型为:

long FAR PASCAL WndProc(HWND ,unsigned,WORD,LONG);并且必须在模快定义中回调它。WndProc是一个回调函数(见第五节),如果暂时无法理解这个模糊的概念意味着什么,可先放过,等到讲消息循环时再详谈。

(3)第三,四个参数:cbWndExtra域指定用本窗口类建立的所有窗口结构分配的额外字节数。当有两个以上的窗口属于同一窗口类时,如果想将不同的数据和每个窗口分别相对应。则使用该域很有用。这般来讲,你只要把它们设为0就行了,不必过多考虑。

(4)第五个参数:hInstance域标识应用程序的实例hInstance,当然,实例名是可以改变的。wc.hInstance = hInstance ;这一成员可使Windows连接到正确的程序。

(5)第六个参数:成员hIcon被设置成应用程序所使用图标的句柄,图标是将应用程序最小化时出现在任务栏里的的图标,用以表示程序仍驻留在内存中。Windows提供了一些默认图标,我们也可定义自己的图标,VC里面专有一个制作图标的工具。

(6)第七个参数: hCursor域定义该窗口产生的光标形状。LoadCursor可返回固有光标句柄或者应用程序定义的光标句柄。IDC_ARROW表示箭头光标.

(7)第八个参数:wc.hbrBackground域决定Windows用于着色窗口背景的刷子颜色,函数GetStockObject返回窗口的颜色,本程序中返回的是白色,你也可以把它改变为红色等其他颜色.试试看

(8)第九个参数:lpszMenuName用来指定菜单名,本程序中没有定义菜单,所以为NULL。

(9)第十个参数:lpszClassName指定了本窗口的类名。

API CreateWindowEx各参数详解与WNDCLASSEXW中style的参数含义 CreateWindowEx各参数详解与WNDCLASSEXW中style的参数含义 阅读详情

相关推荐

Notepad++源码分析(三)

上一篇Notepad++源码分析(二)提到过 ::CallWindowProc(_tabBarDefaultProc, hwnd, Message, wParam, lParam);这里的_tebBarDefaultProc的由来是用来保存原始Tabbar控件的消息处理函数.即:

df7009的专栏 1725

Window窗口——窗口属性

1.窗口类型与层级 Android支持的窗口类型很多,不过我们可以将它们统一划分为三大类,即Application Window, System Window和Sub Window。另外各个种类下还细分为若干子类型,且都在WindowManager.java 中定义,如下所示。 1. Application Window 普通应用程序的窗口都属于这一类,如表1-1所示。 表 1-1 Application Window 细分 Type Descript

悟心的专栏 2130

窗口操作(获取窗口的句柄、指针、ID; 获取各种类的句柄、指针、ID; 窗口的修改与重绘)

对窗口操作: 获取窗口的句柄、指针、ID 获取各种类的句柄、指针、ID 窗口的修改与重绘

windows窗口基础2—参数说明

 1.5、句柄  Windows应用程序中存在许多对象,例如选单、窗口、图标、内存对象、位图、刷子、设备对象和程序实例等,在Windows中,对象使用句柄进行标识,这样,通过使用一个句柄,应用程序可以访问一个对象。  在Windows软件开发工具中,句柄被定义为一种新的数据类型。在应用程序中,对句柄的使用一般只有赋值(句柄可以被赋以初始值、被改变为用于标识同类对象中的另一个对象和被用作函数的参

c++自学 2108

取得窗口类对像或指针

窗口(CWnd类)控制 要想通过CWnd类控制窗口,必须先取得CWnd类(或派生类)的对像或指针。主要方法有四: 一,系统已经定义好的类。 二,自己定义对像,并操作它。 三,利用类向导为控件关联变量(前面已讲,不再详细讲解)。 四,利用现有函数,如:GetDlgItem、GetActiveView、Findwindow。 更多内容见:vcshare.net和http://www.hedanwang.cn/bbs/

摩尔线程GPU实战:5分钟搞定AI模型部署(含Docker避坑指南)

本文详细介绍了摩尔线程GPU在AI模型部署中的实战应用,包括环境配置、Docker避坑指南及性能优化技巧。通过5分钟快速部署指南,帮助开发者高效利用摩尔线程GPU进行AI模型推理,特别针对常见兼容性问题提供解决方案,显著提升部署效率。

weixin_28736335的博客 454

用Tkinter打造GUI开发工具(30)控件参数设置窗口及参数获取方法

用Tkinter打造GUI开发工具(30)控件参数设置窗口及参数获取方法 前几篇我们介绍了Tkinter的3种布局可视化的技术实现,本来这篇要介绍FORM布局的可视化技术实现代码。但是我还没想到更好的技术实现方法,后面抽空再介绍。 这篇先介绍Tkinter控件参数设置窗口及参数获取方法。可视化设计除了布局外,还存在每个控件的参数设置,不同的控件参数都不同,有些甚至有几十个参数。因此我们可以考虑把不...

hepu8的博客 1770

Unity嵌套ScrollView滑动冲突解决方案:ExecuteEvents.Execute事件透传

在Unity UGUI中,竖向与横向ScrollView嵌套时出现滑动失效,本质是EventSystem事件分发机制的拦截限制。其原理在于PointerDown被外层捕获后,后续PointerMove默认不向下透传;ExecuteEvents.Execute提供了一条绕过常规冒泡流程的官方事件旁路,支持低延迟、方向自适应的精准透传。该技术具备高兼容性与零侵入特性,广泛应用于电商商品页、内容流卡片组、多级导航等需‘列表中嵌套轮播/标签’的真实场景,是解决UGUI嵌套滚动问题的核心工程实践方案。

weixin_33164198的博客 632

窗口类(Window Class)概述

windows窗口编程(通常意义上的win32)有几个比较核心的概念:入口函数WinMain、窗口类Window Class、窗口过程、消息处理机制、通用控件。本文主要介绍窗口类的相关概念,包括: 窗口类的类型; 窗口类的注册及使用; 窗口类的构成。 窗口类是基于进程的,每个应用程序在创建窗口之前必须注册窗口类(或者使用操作系统定义的窗口类),使用完成之后需要销毁(反注册)。 介...

weixin_33940102的博客 3370

Win10系统下AppScan 10.0.0安装破解全流程(附百度网盘资源)

本文详细介绍了在Windows 10系统上安装和配置AppScan 10.0.0进行Web漏洞扫描的完整流程。内容涵盖环境准备、分步安装、核心文件部署、许可证配置及首次扫描实践,旨在帮助开发人员和安全爱好者快速搭建专业的Web应用安全扫描环境,并提升扫描效率。

u8v9w0x1y的博客 366

【Apollo学习笔记】——规划模块TASK之SPEED_HEURISTIC_OPTIMIZER

在Apollo星火计划学习笔记——Apollo路径规划算法原理与实践与【Apollo学习笔记】——Planning模块讲到……Stage::Process的函数会依次调用task_list中的TASK,本文将会继续以LaneFollow为例依次介绍其中的TASK部分究竟做了哪些工作。由于个人能力所限,文章可能有纰漏的地方,还请批评斧正。在配置文件中,我们可以看到LaneFollow所需要执行的所有task。本文将继续介绍LaneFollow的第10个TASK——动态规划规划目标加速度尽可能小。

sinat_52032317的博客 3425

Qt_day6_多窗口编程

#继承结构 #QMessageBox 消息对话框 #QStackedWidget 堆栈窗口 #QMainWindow 主窗口类 #QMenuBar 菜单栏 #QToolBar 工具栏 #QWidget 中心组件 #QStatusBar 状态栏 #parent参数 #自定义窗口类 #窗口传参(对象传参) #事件 、机制 、事件函数

weixin_63791423的博客 768

MFC创建一个窗口五大步

.窗口的创建步骤: 1.设计一个窗口类: WNDCLASS结构体参数: (1) UINT style:窗口类的类型, (2) WNDPROC lpfnWndProc:窗口的过程,接收一个指针,在程序中会将一个回调函数赋给他,有系统自动调用 (3) int cbClsExtra:追加一定字节的额外存储空间,附加内存空间,常设置为0 (4)...

weixin_30726161的博客 578

控制科学与工程(自动化)保研经验【1】——预备篇

个人情况 学校:中末流211 专业:自动化(学科评估B-) 年份:2019 排名:4/128 绩点:4.16/5 竞赛:三个国二(包括数模国赛美赛)、两个省一(机器人、电子设计竞赛) 【本科期间竞赛做的比较多,是我的一大亮点,可以在筛简历这关适当弥补专业排名的不足】 科研:一个校级的大创项目(水) 夏令营报名:中科大科学岛、中科大本部、自动化所、沈自所、北航(仪器17系)、山大、浙江大学、南开、同...

Control Everything 1万+

InVEST模型 | HAbitat quality模块计算生境质量

 本文详细介绍使用InVEST模型中HAbitat quality模块计算生境质量,包含各个参数的含义、所需数据、数据处理以及需要各个参数注意的地方等过程。

地理空间科学的博客 1万+

Windows程序设计04:注册窗口类以及创建窗口

  在上一篇博文《Windows程序设计03:创建窗口类》(http://www.cnblogs.com/menlsh/archive/2013/01/26/2878162.html)中,我们提到创建一个应用程序窗口需要五个步骤,并实现了第一个步骤:创建窗口类。   在本篇博文中,将继续介绍第二步和第三步的实现方法,调用RegisterClass函数注册窗口类和调用CreateWindow函数创...

weixin_34151004的博客 396

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

windows窗口三要素---Win32

在构造窗口应用程序前,先准备好如下变量:HINSTANCE _hInst;HWND _hWnd;TCHAR szClassName[] = TEXT("Test Class");TCHAR szTitleName[] = TEXT("Test Window");ATOM MyRegisterClass(HINSTANCE hInstance);    // 注册窗口类别BOOL InitIns

chengxuetao的专栏 1332

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

绘制简易窗口

#include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT("MyW

fishc_com的博客 621

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

CreateWindow函数详解

CreateWindow函数详解 在注册完窗口类后就需要进行窗口的创建,用到的函数理所当然就是CreateWindow(), 而这个函数是基于窗口类的,所以还需要指定几个参数来制定特定的窗口。而且像一些不带边框的窗口是怎么创建的也是具有相当的技巧的,就是创建的是不带标题和边框的窗口,然后自己在客户区绘制程序的内容,能够制作个性化的应用程序。 API解释 该函数创建一个重...

lixingyun123的博客 1万+

从鼠标中获得输入(2)

什么?没有边框的窗口?TicTac 在一个很重要的方面与一二章的范例程序有所不同:它使用了一个CWnd的派生类作为其主窗口,而不是用的一个框架窗口.这并非意味着CFrameWnd不 能完成任务,而只是说光用CWnd完成这个任务已经足矣.CWnd是MFC中所有窗口类的基类,依照你的应该程序的不同,你可以选择从CWnd派生出不同 的窗口类或者是直接使用CWnd作为主窗口.尽管如此,作为一个

狐狸娃娃的专栏 884

OpenCV HOGDescriptor 参数图解

最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来进行封装,其中也有现成的行人检测的接口。然而,无论是OpenCV官方说明文档还是各个中英文网站目前都没有这个类的使用说明,所以在这里把研究的部分心得分享一下。       首先我们进入HOGDescriptor所在的头文件,看看它的构造函数

浮城大亨的专栏 5902

MFC界面编程基础(01):Windows 编程模型

MFC:微软基础类库(英语:Microsoft Foundation Classes,简称MFC) 如果你是在windows平台上做GUI开发,MFC是一个很好的选择,毕竟windows累积用户群庞大,市场接受程度高。但是,学习MFC不仅仅要学习用MFC,还要学习MFC的框架设计思想。 如果仅仅会用MFC的话,可能在找工作的时候,一旦工作内容离开了MFC,就什么也不会了。学习任何东西都是一样的,学...

半个月儿上来的博客 5298

programming windows-----窗口与消息

1.消息处理函数       作用:所谓的消息处理程序指的是对于windows程序是事件驱动的,由此需要消息处理程序来维护windows程序。当使用者更改windows窗口时,windows将此改变的消息发送到windows建立的消息队列中(或直接发送到相应的窗口消息处理程序中),然后等程序将消息发送到相应的窗口消息处理程序,消息处理程序将处理发送到相应的窗口,对其进行改变。     函数:参

逗仔的专栏 459
上一篇: 错误unknown character '0xa1'
下一篇: 注册窗口类
runner0592
博客等级 码龄21年 4粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值