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 ...
随机推荐
- 【HUAWEI Mate30】抽奖啦!华为IoT新福利上线!
华为云OceanConnect IoT云服务包括应用管理.设备管理.系统管理等能力,实现统一安全的网络接入.各种终端的灵活适配.海量数据的采集分析,从而实现新价值的创造. 华为云OceanConnec ...
- 了解BootLoader——基于MPC5744P Bootloader例程
一.BootLoader的作用:BootLoader是固化在PFlash中的一个程序,其作用可以分为两部分:boot和load. (1)boot:MCU上电时首先会运行BootLoader程序(因为它 ...
- 如何利用 Open Live Writer 在本地发布WordPress博客文章
[导读] Open Live Writer是由Windows Live WriterWriter更名而来,是由微软推出的一款能够免费使用的博客写作软件. Open Live Writer 可以支持大多 ...
- dubbo 订阅 RPC 服务
Dubbo 订阅 RPC 服务 建立消费者者项目 pom.xml <?xml version="1.0" encoding="UTF-8"?> &l ...
- Linux IO多路复用之epoll网络编程
前言 本章节是用基本的Linux基本函数加上epoll调用编写一个完整的服务器和客户端例子,可在Linux上运行,客户端和服务端的功能如下: 客户端从标准输入读入一行,发送到服务端 服务端从网络读取一 ...
- 【React】282- 在 React 组件中使用 Refs 指南
英文:Yomi Eluwande 译文:joking_zhang https://segmentfault.com/a/1190000019277029 使用 React 时,我们的默认思维方式应该 ...
- LNMP-Nginx反向代理
Nginx反向代理 Nginx提供反向代理的模块http proxy,这个模块是默认的,不需要重新编译模块.通常情况下,Nginx代理一般常用的环境是,提供web服务的服务器放在内网,暴露在外网上容易 ...
- centos7—计划任务(at、cron)
centos7—计划任务(at.cron) 2018-08-08 14:33:17 coisini_覔 阅读数 3751更多 分类专栏: Linux基础 crond/at 版权声明:本文为博主原创 ...
- 1篇文章搞清楚8种JVM内存溢出(OOM)的原因和解决方法
前言 撸Java的同学,多多少少会碰到内存溢出(OOM)的场景,但造成OOM的原因却是多种多样. 堆溢出 这种场景最为常见,报错信息: java.lang.OutOfMemoryError: Java ...
- Pycharm 解释器的快捷键
Ctrl+shift+Z 反撤销 Ctrl +/ 注释 ctrl+d 复制粘贴选中 Ctrl+y 删除默认一行 Ctrl+shift+r 全局搜索 Ctrl+alt+/ 代码整理 compare w ...