摘要:
今天这个话题比较简单,仅截取同进程的窗体消息,如果我们再做一些处理做成一个DLL然后将DLL驻入到指定进程的窗体中那更有意思了, 我们将在后面的章节里再研究一下。 我们开始学习了。 本节与上一节都在讲述着同相的内容围绕着GetWindowLongPtr, SetWindowLongPtr两个API进行的 (一) 函数声明 LONG_PTR GetWindowLongPtr(HWND... 阅读全文
摘要:
作为一个窗体,除了具有窗体类信息外还有其自身的一些信息如风格,扩展风格,窗体处理函数外还包括一个用户信息, 我们可以通过信息空间将我们要公共信息置入其中实现信息共享. 接下来我们看看它的功能. (一) 函数声明 LONG_PTR GetWindowLongPtr(HWND hWnd, int nIndex ); 获取指定窗体特定标识信息, 此函数支持32位和64位 ... 阅读全文
摘要:
在上一节中我们有测试过使用GetClassInfoEx读取不到窗体类信息,我们这一节将学习通过GetClassLongPtr获取非窗体所在的进程类信息 (一) 函数声明 ULONG_PTR GetClassLongPtr(HWND hWnd, int nIndex ); 获取指定窗体(可进程也可进程外)特定类信息项值(数据源:窗体类分配的WNDCLASSEX参数值),... 阅读全文
摘要:
在上一节中我们练习了注册一个类,并通用此类实例化一个对象。 今天我们反过来学, 对于己实例化的窗体如何读取自身的注册信息,Window 同样提供了对应的方法。 (一) 函数声明 int GetClassName(HWND hWnd, LPTSTR lpClassName, int nMaxCount ); 获取实例窗体类名 BOOL GetCl... 阅读全文
摘要:
所有窗体在创建前都必须注册窗体类,只有注册的窗体类才被系统认知并允许实例化,换句话说通过注册告诉进程窗体管理器此类窗体的属性如: 背景色,窗体上的鼠标样式以及窗体事件处理函数等; 有一些控件类系统自带了的可以不用注册即可实例化,在不需要时反注册掉,以便释放类占用的内存。 (一) 函数声明 I). 类注册 ATOM RegisterClassEx(CONST WND... 阅读全文
摘要:
正如前面的几节中我们讲述的, Windows是由一系列的窗体组合而成,而Windows在对一个窗体操作前需要得到这个窗体的句柄,那如何读取一个窗休的句柄呢,Windows提供了许多的函数来达到这样的目的,今天我们先了学习最常用和直接的二个方法: (一) 函数声明 HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter, LPC... 阅读全文
摘要:
在我们【改变窗体的位置及大小】中有讲解类似的内容, 这一节将讲述更高级一些的API,它不仅改变窗体的位置,大小还可以改变窗体间的前后顺序即Z-ORDER, 另外支持控制窗体其他属性如:显示/隐藏, 更新后窗体刷新状态等. (一) 函数定义及演示代码 BOOL SetWindowPos(HWND hWnd, HWND hInsertAfter, int x, int y, int... 阅读全文
摘要:
窗体有三个最基本的属性:位置,大小,Z-Order, Windows 对于改变窗体位置和大小这两个更常用提供了更简单的函数. (一)改变窗体大小和位置 BOOL MoveWindow(HWND hWnd, int x, int y, int nWidth, int nHeight, BOOL bRepaint) 改变指定窗体的起始位置以及窗体大小,最后一个参数... 阅读全文
摘要:
在Windows系统中几乎我们看到的元素都是窗体,通常我们将带有WS_OVERLAPPED或WS_POPUP风格的窗体被称之为顶层窗体,而WS_CHILD风格属性的窗体称之为控件如: Button, ListBox, CommboBox, TreeView等; 为了创建窗体以及控件Window提供了二个函数: (一)创建窗体 HWND CreateWindowEx(DWO... 阅读全文
摘要:
正如Windows操作系统的名称一样, 窗体操作系统, 是的, 在Windows 系统中几乎所有可见的部件都是一个窗体, 比如我们看到的桌面,Word主窗体,各种对话框,按钮,树形列表以及菜单. Windows 系统正是围绕着窗体而展开的,它提供了非常与窗体有关的函数,以今起我们将逐步来练习窗体以及窗体的属性,以及常用的窗体函数. 今天我们先看看Windows 将窗体划分的类型: 1... 阅读全文