WNDCLASS 窗口类结构】的更多相关文章

Windows 的窗口总是基于窗口类来创建的,窗口类同时确定了处理窗口消息的窗口过程(回调函数). 在创建应用程序窗口之前,必须调用 RegisterClass 函数来注册窗口类.该函数只需要一个参数,即指向 WNDCLASS 窗口类的指针.因为 WNDCLASS 类包含了窗口所拥有的基本属性. 结构原型: typedef struct tagWNDCLASSW { UINT        style; WNDPROC     lpfnWndProc; int         cbClsExtr…
一.窗口类结构体简介 窗口类结构体包含了窗口的各种参数信息.比如:窗口的图标.菜单栏.背景颜色.窗口的消息处理等等. 窗口类结构体有两个:WNDCLASS(早期版本) 和 WNDCLASSEX(新版本).至于为什么有 WNDCLASSEX 还要保留老版本的 WNDCLASS?主要是为了兼容以前使用老版本开发的 Win32 程序才保留的. 二.窗口类结构体的成员变量 这里暂时只介绍新版本的 WNDCLASSEX,也更推荐使用新版本的. typedef struct tagWNDCLASSEXW {…
一.大写标示符 Windows中的很多标识符都是以两个或者三个大写字母作为前缀的,且其后紧跟一个下划线.这些标识符都是常量数值,前缀表明该常量的一般类别.如下 前缀 常量 CS(Class Style) 类风格选项 CW(Create Window) 创建窗口选项 DT(Draw Text) 文本绘制选项 IDI(ID Image) 图标的ID号 IDC(ID Cursor) 光标的ID号 MB(Messge Box) 消息框选项 SND(Sound) 声音选项 WM(Window Messag…
消息机制 让编程改变世界 Change the world by program 内容节选: 我们来回顾一下,窗口是怎么从代码中诞生出来的? 1. 首先我们是通过给 WNDCLASS 窗口类结构各个成员赋值,从大体上定义一个窗口类出来. 2. 将这个窗口类作为参数调用 RegisterClass 函数,这个函数的作用主要是向系统注册窗口类. 3. 注册成功之后我们就可以通过 CreateWindow 生成一个具体的窗口实例,在 CreateWindow 的时候,我们可以设置更多的窗口参数,使得这…
<白手起家Win32SDK应用程序> 目 录 <白手起家Win32SDK应用程序> 第一篇.预备知识 第二篇.创建Win32工程和主函数 第三篇.增加一个回调函数 第四篇.注册一个窗口类 第五篇.利用已注册的窗口类来创建一个窗口 第六篇.显示你创建的窗口 第七篇.获取消息及对消息缺省处理 第八篇.关闭窗口的同时退出程序 第九篇.窗口标题栏上显示自定义图标(手动编辑代码) 第一篇.预备知识 白云小飞1 说在前面    由于VC6及MFC的特点,我们许多人从标准C++学习到VC6MFC…
(注意:遇到程序在弄懂之后一定要自己去敲,一定要自己去敲,一定要自己去敲) (注意:遇到程序在弄懂之后一定要自己去敲,一定要自己去敲,一定要自己去敲) (注意:遇到程序在弄懂之后一定要自己去敲,一定要自己去敲,一定要自己去敲) 代码如下: #include<windows.h>     #include<mmsystem.h>     #pragma comment(lib,"WINMM.LIB")    LRESULT CALLBACK WndProc(HWN…
最近在学习Windows底层原理,准备写个系列文章分享给大家,Michael Li(微软实习期间的Mentor,为人超好)在知乎回答过一些关于学习Windows原理的书籍推荐,大家可以拜读其中一本来入门.我是先从<Windows核心编程>开始了解一些Windows底层管理与硬件交互的原理,然后买了一套冬瓜哥撰写的<大话计算机>系列丛书,学有余力的童鞋强烈推荐你去看看,这套书对计算机整体的运作原理讲解的很系统,涉及了计算机组成原理.网络原理.编译原理.操作系统.硬件等,可以作为不错的…
第三章是基于对一个windows窗口的学习,来达到对windows程序运行机制的理解. 从语言的角度看消息机制,Windows给程序发消息的本质就是调用"窗口过程"函数. Don't Call Me, I'll Call You! 主动激励,被动响应. /*------------------------------------------------------------ HELLOWIN.C -- Displays "Hello, Windows 98!" i…
<Windows程序设计>(第五版)(美Charles Petzold著) #include<windows.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdline,int iCmdShow) //第一个参数是实例句柄,在Windows程序中,句柄就是一个数值,程序里用它来标志…
    第三章 窗口与消息 1,windows窗口过程:应用程序所创建的每一个窗口都有一个与之关联的窗口过程,用于处理传递给窗口的消息. 2,窗口依据窗口类来创建.窗口类标识了用于处理传递给窗口的消息的窗口过程.窗口类的使用允许多个窗口共享一个窗口类,因而多个窗口可以使用相同的窗口过程. 3,Windows程序开始执行的时候,Windows首先为该程序创建一个消息队列.该消息队列中存放着应用程序可能创建的所有窗口的消息.Windows应用程序中一般包含一小段称为"消息循环"的代码,该段…
Window Classes in Win32 摘要 本文主要介绍win32系统里窗口类的运做和使用机制,探索一些细节问题,使win32窗口类的信息更加明朗化. 在本文中,"类","窗口类"这两个术语等同,都不是指C++类,而是指和窗口相关的一组信息的集合.[sfqh:我更倾向把window classes翻译为窗口种类.窗口类别\(‘-’)/] 简介 窗口类的风格决定了窗口的外观和风格.所有的窗口都会属于某一个窗口类.在创建一个窗口之前,必须注册(register…
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第一课:OpenGL窗口 创建一个OpenGL窗口: 在这个教程里,我将教你在Windows环境中创建OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架. 理解O…
#include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int ICmdShow) { static TCHAR szAppName[] = TEXT("windowOfC"); HWND hwnd;//窗体句柄变量 MS…
不要用那个nehe ndk了 误人子弟! 转自: 一个窗口,代码可真多啊 http://www.yakergong.net/nehe/ 在这个教程里,我将教你在Windows环境中创建OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架. 现在就让我们直接从代码开始吧.第一件事是打开VC然后创建一个新工程.如果您不知道如何创建的话,您也许不该学习OpenGL,而应该先学学VC.某些版本的VC需要将 bool 改成 BOOL ,…
一.int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int nCmdShow) 四个参数: hInstance:程序当前实例的句柄(handle to current instance),以后随时可以用GetModuleHandle(0)来获得 hPrevInstance:前一个实例的句柄(handle to previous instance),在Win32中,每一个进程都有一个…
windows窗口的创建有以下几个步骤: 1.创建注册窗口类 2.创建窗口句柄 3.显示更新窗口 4.消息循环 1.创建注册窗口类 所谓创建窗口类就是定义一个WNDCLASS类对象,并将该对象进行初始化.之后就要用RegisterClass()函数对该窗口类对象进行注册,以便使某个窗口与该窗口类相关联. 关于WNDCLASS的定义如下: typedef struct {    UINT style;    WNDPROC lpfnWndProc;    int cbClsExtra;    in…
一.什么是窗口类  在Windows中运行的程序,大多数都有一个或几个可以看得见的窗口,而在这些窗口被创建起来之前,操作系统怎么知道该怎样创建该窗口,以及用户操作该窗口的各种消息交给谁处理呢?所以VC在调用Windows的API(CreateWindow或者CreateWindowEx)创建窗口之前,要求程序员必须定义一个窗口类(不是传统C++意义上的类)来规定所创建该窗口所需要的各种信息,主要包括:窗口的消息处理函数.窗口的风格.图标. 鼠标.菜单等.其定义如下: typedef struct…
win32程序值窗口程序,以及消息机制 一丶简介 通过上一讲.我们了解了窗口其实是绘制出来的.而且是不断绘制的过程. 所以窗口的本质是绘制. 但是我们现在看到的窗口程序.都可以点击关闭按钮. 使用鼠标点击会有反应. 而我们要怎么实现那. 其实鼠标点击是产生了一个消息.  window把这个消息封装成了消息结构体. 发送给了我们的窗口程序.  那么windows怎么知道你点击的那个窗口那? 是这样的. 当我们点击的时候. 会记录点击坐标.消息.等等. windows系统会接受到. 然后遍历内核中的…
一.WNDCLASS typedef struct { UINT cbSize //这个结构体的长度,一般用sizeof(WNDCLASSEX)设置 UINT style //窗口式样 WNDPROC lpfnWndProc //窗口消息处理的函数名 int cbClsExtra //分配给窗口类结构之后的额外字节数,一般为0 int cbWndExtra //分配给窗口实例之后的额外字节数,一般为0 HINSTANCE hInstance //想要申请的窗口实例句柄 HICON hIcon /…
一.WINDOWS的消息和窗口简介:1.什么是windows在这里我就不介绍了,但是作为一个程序员我们要知道WINDOWS最重要的一个也是我们程序员常用的一个东西就是消息.窗口是以消息的形式输入的,窗口也用消息与其它窗口通讯. 2.我们常会说windows给程序发送了一个消息,其实这是指windows调用程序中的一个函数,该函数的参数描述了这个特定消息.这种位于windows程序中的函数称为“窗体消息处理程序”.程序建立的每一个窗体都有相关的窗口消息处理程序.这个窗口消息处理程序是一个函数,既可…
第一个windows窗口 #include <windows.h> /* Displays "Hello, World!" in client area */ LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口过程函数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {…
一.创建一个应用程序窗口 代码如下: // 头文件 #include <windows.h> // 全局变量 WCHAR g_lpszClassName[] = L"CLASSNAME"; WCHAR g_lpszWindowName[] = L"哈喽,新的征程"; // 函数声明 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // 应用程序主函数 INT APIENTRY WinMain(H…
WNDCLASS结构: Windows 的窗口总是基于窗口类来创建的,窗口类同时确定了处理窗口消息的窗口过程(回调函数). 在创建应用程序窗口之前,必须调用 RegisterClass 函数来注册窗口类.该函数只需要一个参数,即指向 WNDCLASS 窗口类的指针.因为 WNDCLASS 类包含了窗口所拥有的基本属性. 结构原型: typedef struct tagWNDCLASSW { UINT style; //指定窗口类型,各种"类风格"(详见下方↓)可以使用按位或操作符组合起…
接下来的代码段创建我们的OpenGL窗口.我花了很多时间来做决定是否创建固定的全屏模式这样不需要许多额外的代码,还是创建一个容易定制的友好的窗口但需要更多的代码.当然最后我选择了后者.我经常在EMail中收到诸如此类的问题:怎样创建窗口而不使用全屏幕?怎样改变窗口的标题栏?怎样改变窗口的分辨率或pixel format(象素格式)?以下的代码完成了所有这一切!尽管最好要学学材质,这会让您写自己的OpenGL程序变得容易的多! 正如您所见,此过程返回布尔变量(TRUE 或 FALSE).他还带有5…
摘抄自文档,其中的函数需要以后花时间看 向 WinMain 添加功能 首先,在 WinMain 函数内部创建 WNDCLASSEX 类型的窗口类结构. 此结构包含有关窗口的信息,如应用程序图标.窗口的背景色.在标题栏中显示的名称.窗口过程函数的名称等等.典型的 WNDCLASSEX 结构如下: WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndP…
        近期有个同学的程序须要用对话框的方式实现,但前面都是通过黑框形式完毕的,老师突然让添加一个界面,本来准备採用MFC完毕的,但后来一想,该程序核心东西是体如今它的算法上,控制台的程序并不是不好.转念一想,假设使用MFC这个方案好像须要再倒腾一遍,想到了大一在"C语言能干大事"中的东西,所以就准备採用这种形式直接完毕,投机取巧的方法.         主要是通过调用Windows API界面的CreateWindows函数完毕,同一时候也能创建button,把參数设置为bu…
Windows SDK 编程的一般步骤为: 1. 注册窗口类, 使用到的结构 WNDCLASSEX, 函数 RegisterClassEx. 2. 创建窗口, 函数 CreateWindowEx. 3. 消息循环, 结构 MSG, 函数 GetMessage, TranslateMessage, DispatchMessage. 4. 进入无限循环, 消息处理 :-) 下面是代码, 当然, 还有分析: #include <windows.h> //包含 Windows 相关的 API 函数 /…
在编写窗口程序时主要是5个步骤,创建窗口类.注册窗口类.创建窗口.显示窗口.消息环的编写.对于这5个步骤为何要这样写,当初我不是太理解,学习到现在有些问题我基本上已经找到了答案,同时对于Windows对于窗口的管理机制有了更深的认识,下面我通过问答的方式,一一写出自己之前的疑惑. 问题一.窗口类与窗口之间有何关系? 答:窗口类与窗口就好像C++中类与对象的关系,窗口是窗口类的具体表现,在注册窗口类成功后,系统并没有创建窗口,只是分配的相应的存储空间存储了我们为窗口类填写的一些信息.只有调用Cre…
这次我们将写一个 Windows 程序,它会在桌面显示一个标准的窗口,以此根据代码来学习如何创建一个简单的窗口. 理论: Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows Gui 函数.其实这对用户和程序员来说都有好处,对于用户,面对的是同一套标准的窗口,对这些窗口的操作都是一样的,所以使用不同的应用程序时无须重新学习操作.对程序员来说,这些 Gui 源代码都是经过了微软的严格测试,随时拿来就可以用的.当然至于具体地写程序对于程序员来说还是有难度的.为了创建基于窗口的…
创建窗口步骤: (1)注册窗口类(RegisterClassEx) (2)创建窗口(CreateWindowEx) (3)在桌面显示窗口(ShowWindow) (4)更新窗口客户区(UpdateWindow) (5)进入无限的消息获取和处理的循环:获取消息(GetMessage);分派消息至窗口函数处理(DisPatchMessage); 如果是WM_QUIT,函数(GetMessage)返回False,消息循环结束,程序退出. 注册窗口类需要初始化一个窗口类结构,将其写成一个函数如下: AT…