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 ...
随机推荐
- Java基础IO类之字符串流(查字符串中的单词数量)与管道流
一.字符串流 定义:字符串流(StringReader),以一个字符为数据源,来构造一个字符流. 作用:在Web开发中,我们经常要从服务器上获取数据,数据返回的格式通常一个字符串(XML.JSON), ...
- 微信小程序——详细讲解页面传值(多种方法)
1.使用navigator的url带参传值 (1)在pageA页面有一个固定的值要传递到pageB页面,比如说一个固定的值user_id要传递给B <navigator url=".. ...
- 关于flask-sqlalchemy的用法研究
最近使用到flask的sqlalchemy,因为flask对sqlalchemy做了一些封装,加上自己本身对sqlalchemy也不熟悉,用法上走了很多弯路. 因为没时间去研究sqlalchemy的源 ...
- 【实用工具】使用Java封装可执行exe应用全过程
目录 编写java代码 打包 创建exe文件 压缩 总结 本文将使用exe4j将java项目封装为可以发送给他人使用的工具为例,来记录将java项目封装为exe文件的全过程 编写java代码 目标:创 ...
- go-channel处理高并发请求
目录 go-channel处理高并发请求 一.Channel简介 二.处理包并发请求 三.测试 1.测试工具 2.测试结果 go-channel处理高并发请求 最近看了一篇文章讲解怎样使用go-cha ...
- Java学习笔记(面向对象下)
面向对象(下) 类的继承 类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类称为子类,现有类称为父类,子类会自动拥有父类所有可继承的属性和方法.(用extends关键字) //定义A ...
- 伸展树(Splay tree)的基本操作与应用
伸展树的基本操作与应用 [伸展树的基本操作] 伸展树是二叉查找树的一种改进,与二叉查找树一样,伸展树也具有有序性.即伸展树中的每一个节点 x 都满足:该节点左子树中的每一个元素都小于 x,而其右子树中 ...
- POJ 2186 Popular cows(SCC 缩点)
Every cow's dream is to become the most popular cow in the herd. In a herd of N (1 <= N <= 10, ...
- Koa - 初体验(写个接口)
前言 不会node.js的前端不是一个好前端! 这几年node.js确实是越来越火了,好多公司对node.js都开始有要求.虽说前端不一定要会后端,但想要成为一个优秀的前端,node.js是必经之路. ...
- django上传并显示图片
环境 python 3.5 django 1.10.6 步骤 创建名为 testupload的项目 django-admin startproject testupload 在项目testupload ...