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() 函数的更多相关文章

  1. SetWindowLong函数GetWindowLong函数

    这两个函数具体应用如下:SetWindowLong函数GetWindowLong函数 Delphi窗口化游戏 var Thwnd:HWND;//声明变量 句柄变量 devmodel1:DEVMODE; ...

  2. 转:介绍shell_notifyicon,SendMessage,CallWindowProc,GetWindowLong,SetWindowLong的用法

    Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA& ...

  3. C++ 中超类化和子类化常用API

    在windows平台上,使用C++实现子类化和超类化常用的API并不多,由于这些API函数的详解和使用方法,网上一大把.本文仅作为笔记,简单的记录一下. 子类化:SetWindowLong,GetWi ...

  4. 窗口类(Window Class)概述

    windows窗口编程(通常意义上的win32)有几个比较核心的概念:入口函数WinMain.窗口类Window Class.窗口过程.消息处理机制.通用控件.本文主要介绍窗口类的相关概念,包括: 窗 ...

  5. WindowsAPI一日一练

    1.SetWindowLong和GetWindowLong 函数原型: LONG SetWindowLong( __in HWND hWnd, __in int nIndex, __in LONG d ...

  6. Win32 Ime

    Win32 Ime API: ImmGetContext: 获取指定窗口的当前的输入上下文,然后再尝试访问上下文中的信息.应用程序应该定期使用这个功能获取窗口的当前的输入上下文.若hWnd参数为零,将 ...

  7. Win32汇编学习(3):简单的窗口

    这次我们将写一个 Windows 程序,它会在桌面显示一个标准的窗口,以此根据代码来学习如何创建一个简单的窗口. 理论: Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows ...

  8. Windows 95 输入法编辑器

    Windows 95 输入法编辑器 翻译:戴石麟译自微软的MSDN DDK 关于Windows 95的多语言IME(输入法编辑器) 在Windows 95中,IME以动态连接库(DLL)的形式提供,与 ...

  9. VC++ 定制应用程序的外观

    一.在窗口创建之前改变窗口的大小和标题 要改变应用程序窗口的大小可以通过在PreCreatWindowl函数中修改CREATSTRUCT结构体变量成员的值 BOOL CMainFrame::PreCr ...

随机推荐

  1. webpack-优化阻塞的css

    随着浏览器的日新月异,网页的性能和速度越来越好,并且对于用户体验来说也越来越重要. 现在有很多优化页面的办法,比如:静态资源的合并和压缩,code splitting,DNS预读取等等. 本文介绍的是 ...

  2. Table表格滑过当前项[当前行][当前列]对应高亮

    效果演示图: JS 代码如下: function TableHover($table){       $table.mouseenter(function(event) {            va ...

  3. [TimLinux] MySQL 导入sql文件数据慢的问题解决办法

    慢的时候执行的命令: mysql -uusername -p -hip_address -Ddb_name < ./db.sql 快的时候执行的命令: mysql -uusername -p - ...

  4. 并查集 2019年8月10日计蒜客联盟周赛 K.数组

    题目链接:https://nanti.jisuanke.com/t/40860 题意:给一个长度为n的数组a[],n<1e5,a[i]<1e5 三个操作: 1 x y:把所有值为x的数据改 ...

  5. HDU4670 cube number on a tree(点分治+三进制加法)

    The country Tom living in is famous for traveling. Every year, many tourists from all over the world ...

  6. HDU1079 Calender Game

    Adam and Eve enter this year’s ACM International Collegiate Programming Contest. Last night, they pl ...

  7. 什么是RESTful?RESTfule风格

    导读 理解什么是REST之前,先去脑补以下什么是HTTP,参考[Http协议] 什么是REST? REST(英文:Representational State Transfer,简称REST,意思:表 ...

  8. AI Boot Camp 分享之 ML.NET 机器学习指南

    今天在中国七城联动,全球134场的AI BootCamp胜利落幕,广州由卢建晖老师组织,我参与分享了一个主题<ML.NET 机器学习指南和Azure Kinect .NET SDK概要>, ...

  9. HA-高可用集群

    原理:两台web服务器,通过心跳线进行通信,当主节点出现服务异常,备用节点通过探测判断主节点是否存活,若是不存活,就把服务接管过来. Web1和Web2中间有一根心跳线,检查对方的存活状态.流动IP: ...

  10. CCF-CSP题解 201512-3 画图

    画图时思路应该清晰一点.我是将坐标\((x,y)\)映射到\(canvas[y][x]\)上. 连线注意\(+\)号的情况,填充写好\(dfs\)就好了. #include <bits/stdc ...