一.窗口类结构体简介 窗口类结构体包含了窗口的各种参数信息.比如:窗口的图标.菜单栏.背景颜色.窗口的消息处理等等. 窗口类结构体有两个:WNDCLASS(早期版本) 和 WNDCLASSEX(新版本).至于为什么有 WNDCLASSEX 还要保留老版本的 WNDCLASS?主要是为了兼容以前使用老版本开发的 Win32 程序才保留的. 二.窗口类结构体的成员变量 这里暂时只介绍新版本的 WNDCLASSEX,也更推荐使用新版本的. typedef struct tagWNDCLASSEXW {…
一.创建一个应用程序窗口 代码如下: // 头文件 #include <windows.h> // 全局变量 WCHAR g_lpszClassName[] = L"CLASSNAME"; WCHAR g_lpszWindowName[] = L"哈喽,新的征程"; // 函数声明 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // 应用程序主函数 INT APIENTRY WinMain(H…
win32程序值窗口程序,以及消息机制 一丶简介 通过上一讲.我们了解了窗口其实是绘制出来的.而且是不断绘制的过程. 所以窗口的本质是绘制. 但是我们现在看到的窗口程序.都可以点击关闭按钮. 使用鼠标点击会有反应. 而我们要怎么实现那. 其实鼠标点击是产生了一个消息.  window把这个消息封装成了消息结构体. 发送给了我们的窗口程序.  那么windows怎么知道你点击的那个窗口那? 是这样的. 当我们点击的时候. 会记录点击坐标.消息.等等. windows系统会接受到. 然后遍历内核中的…
一.什么是 Win32 Win32 是指 Microsoft Windows 操作系统的 32 位环境,与 Win64 都为 Windows 常见环境. 这里再介绍下 Win32 Application 和 Win32 Console Application 之间的区别: 1.程序不同 Win32 Application 是标准 windows 程序,完全拥有 windows 的特性,可以通过鼠标点击窗口来完成控制. Win32 Console Application 是控制台应用程序,类似于…
Window Classes in Win32 摘要 本文主要介绍win32系统里窗口类的运做和使用机制,探索一些细节问题,使win32窗口类的信息更加明朗化. 在本文中,"类","窗口类"这两个术语等同,都不是指C++类,而是指和窗口相关的一组信息的集合.[sfqh:我更倾向把window classes翻译为窗口种类.窗口类别\(‘-’)/] 简介 窗口类的风格决定了窗口的外观和风格.所有的窗口都会属于某一个窗口类.在创建一个窗口之前,必须注册(register…
(一)TextOut函数的参数介绍: BOOL TextOut ( //如果函数调用成功,返回TRUE,否则,返回FALSE HDC hdc, //用于显示字符串的控件ID int nXStart, //字符串所在起始位置左上角(X,Y)的X坐标 int nYStart, //字符串所在起始位置左上角(X,Y)的Y坐标 LPCTSTR lpString, //显示的字符串内容 int cbString //字符串长度 ) ; 函数调用示例: TextOut ( hdc, , , TEXT ( )…
win32程序之子窗口编程 一丶简介.什么是子窗口 在前边我们已经讲解了窗口的本质.以及如何注册窗口类跟创建窗口. 还讲了消息循环. 那么有很多窗口其实Windows已经帮我们创建出来了.我们直接使用即可. 而这些窗口都有自己的消息循环. 只有改变状态的时候.才会发送消息给我们的父窗口通知. 此时我们捕获消息就可以进行处理了. 子窗口其实就是绘制在主窗口的一个窗口.  这些窗口包含了  BUTTON  (按钮控件)  EDIT(编辑框控件) ..... 二丶创建子窗口 1.创建EDIT子窗口 创…
UWP 程序天生单实例.当然,新 API (10.0.17134)开始也提供了多实例功能.不过,传统 Win32 程序可就要自己来控制单实例了. 本文介绍简单的几个 Win32 方法调用,使 Win32 程序也支持单实例.   激活之前进程的窗口 我们可以通过进程名称找到此前已经启动过的进程实例,如果发现,就激活它的窗口. [STAThread] static void Main(string[] args) { var current = Process.GetCurrentProcess()…
预备知识 1.什么是句柄? (HANDLE) 在win32编程中有各种句柄,那么什么是句柄呢? #define DECLARE_HANDLE(name) struct name##_ { int unused; }; typedef struct name_* name; 例如HDC的定义 #define DECLARE_HANDLE(HDC) struct HDC_ { int unused; }; typedef struct HDC_ * HDC 当一个函数需要HWND类型参数的时候,你就…
1. 子类化 理论:子类化是这样一种技术,它允许一个应用程序截获发往另一个窗口的消息.一个应用程序通过截获属于另一个窗口的消息,从而实现增加.监视或者修改那个窗口的缺省行为.子类化是用来改变或者扩展一个已存在的窗口的行为.而不用重新开发的有效途径.想要获得那些预定义控件窗口类(按钮控件.编辑控件.列表控件.下拉列表控件.静态控件和滚动条控件)的功能而又要修改它们的某些行为的一个便利的方法就是对它们进行子类化.例如,对于一个在对话框中的多行编辑框来说,当用户按下Enter键时,对话框会关闭.通过对…