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 ...
随机推荐
- 转:linux 安装 Elasticsearch5.6.x 详细步骤以及问题解决方案
在网上有很多那种ES步骤和问题的解决 方案的,不过没有一个详细的整合,和问题的梳理:我就想着闲暇之余,来记录一下自己安装的过程以及碰到的问题和心得:有什么不对的和问题希望及时拍砖. 第一步:环境 li ...
- FF.PyAdmin 接口服务/后台管理微框架 (Flask+LayUI)
源码(有兴趣的朋友请Star一下) github: https://github.com/fufuok/FF.PyAdmin gitee: https://gitee.com/fufuok/FF.Py ...
- JS的对象、数组等处理方法:解构
对象方法简写 你可以在定义方法时省略function和 :: const obj = { insteadOfThis: function() { // do stuff }, youCanDoThis ...
- 【JS】336- 拆解 JavaScript 中的异步模式
点击上方"前端自习课"关注,学习起来~ JavaScript 中有很多种异步编程的方式.callback.promise.generator.async await 甚至 RxJS ...
- UWP 应用启动速度优化——关闭加载动画
准备 在开始之前,我们应该先处理好预启动来加速启动应用.请参见文末链接. 步骤 关闭加载动画主要在包清单文件中进行. 首先,以代码方式打开 Package.appxmanifest,在顶部的 Pack ...
- 大数据学习笔记——Java篇之集合框架(ArrayList)
Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3 ...
- shell 100
1.编写hello world脚本 #!/bin/bash# 编写hello world脚本 echo "Hello World!"2.通过位置变量创建 Linux 系统账户及密码 ...
- .Net Core使用Ocelot网关(二) -鉴权认证
前言 上一章已经简单的介绍了ocelot的使用了,但是网关暴露的接口如果什么人都能访问的话安全性就太低啦.所以我们需要去鉴权和认证.这里我们使用identityServer4给我们的网关来鉴权认证. ...
- Centos7 Openresty 开发环境
首先要安装编译环境 yum group install "Development Tools" yum install pcre-devel openssl-devel gcc c ...
- Ubuntu 18.04 美化配置
网上很多关于Ubuntu 18.04 美化的配置,但每个人遇见的问题都有些不太一样, 现将本人配置的过程整理如下 更新源为阿里云 找到Software & Updates,将源更新为阿里云的源 ...