GetWindowLong() 函数
Window API函数,可根据nlndex参数的不同获取指定窗口的相关信息,
也可用于获取窗口内存中指定偏移的32位度整型值。该值大小在注册窗口类时设定,
函数原型:
Long GetWindowLong(HWND hWnd, int nlndex);
第一个参数:HWND 需要操作的窗口句柄。
第二个参数:nlndex
1.若大于0,返回窗口内存中指定偏移量的32位值
有效范围为0到存储空间的字节数减4,
比如指定了12个字节的额外窗口存储空间,则应设置8来访问第三个4字节,设置4来访问第二个4字节
设置0来访问第一个4字节空间,
2.也可以设置以下数据: 描述发的
#define GWL_WNDPROC (-4) //获取窗口过程地址或句柄。必须使用CallWindowProc函数调用获取的窗口过程。
#define GWL_HINSTANCE (-6) //获取应用实例句柄
#define GWL_HWNDPARENT (-8) //获取所有者窗口句柄
#define GWL_STYLE (-16) //获得窗口样式
#define GWL_EXSTYLE (-20) //获取扩展窗口样式
#define GWL_USERDATA (-21) //获取用户设置的32位数据,其值默认为0
#define GWL_ID (-12) //获取窗口ID hWnd参数为对话框句柄时,还可用下列值:
#define DWL_MSGRESULT 0 //获取在对话框过程中某消息的返回值。
#define DWL_DLGPROC 4 //获取对话框过程地址或句柄。必须使用CallWindowProc函数来调用对话框过程。
#define DWL_USER 8 //获取应用程序专用的额外信息,例如一个句柄或指针。
返回值:
如果函数成功,返回值是指定的32位整数的原来的值。如果函数失败,返回值为0。
但是,如果指定的32位整数值为0 函数成功将返回0,
补充:
窗口的额外存储空间有注册窗口类时通过设置以下参数指定;
wndclass.cbWndExtra = sizeof(long); 该段代码为使用该窗口类注册的串口预留了 一个长整形变量大小的额外空间。
同时可以通过 SetWindowLong() 函数来改变该值
SetWindowLong(hwnd,0,1) //设置第一个4字节的值
SetWindowLong(hwnd,4,2) //设置第二个4字节的值
SetWindowLong(hwnd,8,3) //设置第三个4字节的值
GetWindowLong() 函数的更多相关文章
- SetWindowLong函数GetWindowLong函数
这两个函数具体应用如下:SetWindowLong函数GetWindowLong函数 Delphi窗口化游戏 var Thwnd:HWND;//声明变量 句柄变量 devmodel1:DEVMODE; ...
- 转:介绍shell_notifyicon,SendMessage,CallWindowProc,GetWindowLong,SetWindowLong的用法
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA& ...
- C++ 中超类化和子类化常用API
在windows平台上,使用C++实现子类化和超类化常用的API并不多,由于这些API函数的详解和使用方法,网上一大把.本文仅作为笔记,简单的记录一下. 子类化:SetWindowLong,GetWi ...
- 窗口类(Window Class)概述
windows窗口编程(通常意义上的win32)有几个比较核心的概念:入口函数WinMain.窗口类Window Class.窗口过程.消息处理机制.通用控件.本文主要介绍窗口类的相关概念,包括: 窗 ...
- WindowsAPI一日一练
1.SetWindowLong和GetWindowLong 函数原型: LONG SetWindowLong( __in HWND hWnd, __in int nIndex, __in LONG d ...
- Win32 Ime
Win32 Ime API: ImmGetContext: 获取指定窗口的当前的输入上下文,然后再尝试访问上下文中的信息.应用程序应该定期使用这个功能获取窗口的当前的输入上下文.若hWnd参数为零,将 ...
- Win32汇编学习(3):简单的窗口
这次我们将写一个 Windows 程序,它会在桌面显示一个标准的窗口,以此根据代码来学习如何创建一个简单的窗口. 理论: Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows ...
- Windows 95 输入法编辑器
Windows 95 输入法编辑器 翻译:戴石麟译自微软的MSDN DDK 关于Windows 95的多语言IME(输入法编辑器) 在Windows 95中,IME以动态连接库(DLL)的形式提供,与 ...
- VC++ 定制应用程序的外观
一.在窗口创建之前改变窗口的大小和标题 要改变应用程序窗口的大小可以通过在PreCreatWindowl函数中修改CREATSTRUCT结构体变量成员的值 BOOL CMainFrame::PreCr ...
随机推荐
- 使用node.js将xmind导出的excel转换为json树
xmind文件如图所示, 最终生成的数据结构如图 2,选择导出为excel文件,导出的excel文件打开如图 3,安装node读取excel模块 cnpm i node-xlsx --save 4 ...
- php mysql_connect 在同一host下多数据库mysql_select_db()的bug .
操作方法 创建两个数据库test1 test2 同一个host下面 分别在两个数据库中创建表 -- ---------------------------- -- Table structure fo ...
- CSS3(1)---圆角边框、边框阴影
CSS3(1)---圆角边框.边框阴影 CSS3可以简单理解成是CSS的增强版,它的优点在于不仅有利于开发与维护,还能提高网站的性能. 一.圆角边框 圆角在实际开放过程中,还是蛮常见的.以前基本是通过 ...
- win7系统的用户去掉用户账户控制 提升管理员
可以在组策略中进行设置 —— “以管理员身份运行”方式打开命令提示符(CMD)后键入 gpedit.msc 打开组策略后作如下更改:<br/>在“计算机配置”-“Windows 配置”-“ ...
- 《JavaScript 正则表达式迷你书》知识点小抄本
介绍 这周开始学习老姚大佬的<JavaScript 正则表达式迷你书> , 然后习惯性的看完一遍后,整理一下知识点,便于以后自己重新复习. 我个人觉得:自己整理下来的资料,对于知识重现,效 ...
- IP地址的配置
1.右击 网上邻居 → 属性 2.右击 本地连接 → 属性 3.选择Internet协议(TCP/IP) → 属性 配置如下, 默认网关始终是网段的第一个地址 4.打开cmd → 输入 ipconfi ...
- 让外部的开发机直接访问Kubernetes群集内的服务!
让外部的开发机直接访问Kubernetes群集内的服务! 1.场景 容器化+K8s编排已经是现在进行时把网站的多个项目设计为云原生(Cloud Native)或老项改造为云原生可以获得诸多能力例如无云 ...
- 学习ES6笔记──工作中常用到的ES6语法
学习博客:https://segmentfault.com/a/1190000016068235
- HDFS的架构和设计要点
HDFS的架构和设计要点 转 大数据之路 发布于 2012/10/11 23:00 字数 4487 阅读 495 收藏 1 点赞 0 评论 0 撸了今年阿里.头条和美团的面试,我有一个重要发现.... ...
- PHP ftp获取目录内容为空
使用PHP的ftp函数获取目录内容,ftp_nlist()和ftp_rawlist()返回都为空. 查了一圈资料找不到答案,然后用Python写了一个,一样的操作就可以获取目录内容. 抓包发现,Pyt ...