GetWindowLong(,)应用及参数解释
时间:2011-11-28
来源:互联网
case WM_LBUTTONDOWN :
SetWindowLong (hwnd, 0, 1 ^ GetWindowLong (hwnd, 0)) ;
InvalidateRect (hwnd, NULL, FALSE) ;
return 0 ;
//以上是Windows程序设计第七章的7-5 P282倒数第7行的部分代码。
对GetWindowLong的使用我有以下几点疑问,在网络搜寻无果的情况下特发此贴以求指点。
1、 LONG GetWindowLong(
HWND hWnd, // handle to window
int nIndex // offset of value to retrieve
);
HWND hWnd, // 该参数如果是WNDCLASS类型的,获取窗口类的相关信息
Windows类型的,获取窗口的相关信息
Dialog类型的,获取对话框的相关信息
关于参数hWnd,不知道我的理解是否正确?
int nIndex // offset of value to retrieve
下面是我结合WNDCLASS类型表述一下我的疑问
typedef struct _WNDCLASS {
UINT style; //偏移量0
WNDPROC lpfnWndProc; //偏移量4
int cbClsExtra; //偏移量8
int cbWndExtra; //偏移量12
HINSTANCE hInstance; //偏移量...
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS, *PWNDCLASS;
/*
* Class field offsets for GetClassLong()
*/
#define GCL_MENUNAME (-8)
#define GCL_HBRBACKGROUND (-10)
#define GCL_HCURSOR (-12)
#define GCL_HICON (-14)
#define GCL_HMODULE (-16)
#define GCL_CBWNDEXTRA (-18)
#define GCL_CBCLSEXTRA (-20)
#define GCL_WNDPROC (-24)
#define GCL_STYLE (-26)
#define GCW_ATOM (-32)
问题1:头文件中得这些宏定义的数值是怎样计算出来的?
问题2:GetWindowLong (hwnd, 0);中得参数0代表什么?
SetWindowLong (hwnd, 0, 1 ^ GetWindowLong (hwnd, 0)) ;
InvalidateRect (hwnd, NULL, FALSE) ;
return 0 ;
//以上是Windows程序设计第七章的7-5 P282倒数第7行的部分代码。
对GetWindowLong的使用我有以下几点疑问,在网络搜寻无果的情况下特发此贴以求指点。
1、 LONG GetWindowLong(
HWND hWnd, // handle to window
int nIndex // offset of value to retrieve
);
HWND hWnd, // 该参数如果是WNDCLASS类型的,获取窗口类的相关信息
Windows类型的,获取窗口的相关信息
Dialog类型的,获取对话框的相关信息
关于参数hWnd,不知道我的理解是否正确?
int nIndex // offset of value to retrieve
下面是我结合WNDCLASS类型表述一下我的疑问
typedef struct _WNDCLASS {
UINT style; //偏移量0
WNDPROC lpfnWndProc; //偏移量4
int cbClsExtra; //偏移量8
int cbWndExtra; //偏移量12
HINSTANCE hInstance; //偏移量...
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS, *PWNDCLASS;
/*
* Class field offsets for GetClassLong()
*/
#define GCL_MENUNAME (-8)
#define GCL_HBRBACKGROUND (-10)
#define GCL_HCURSOR (-12)
#define GCL_HICON (-14)
#define GCL_HMODULE (-16)
#define GCL_CBWNDEXTRA (-18)
#define GCL_CBCLSEXTRA (-20)
#define GCL_WNDPROC (-24)
#define GCL_STYLE (-26)
#define GCW_ATOM (-32)
问题1:头文件中得这些宏定义的数值是怎样计算出来的?
问题2:GetWindowLong (hwnd, 0);中得参数0代表什么?
作者: ly20041012 发布时间: 2011-11-28
你的代码中应该有个对应的调用SetWindowLong(hwnd, 0, ...);之类的吧
作者: VisualEleven 发布时间: 2011-11-28
这是原文代码
case WM_LBUTTONDOWN :
SetWindowLong (hwnd, 0, 1 ^ GetWindowLong (hwnd, 0)) ;
InvalidateRect (hwnd, NULL, FALSE) ;
return 0 ;
case WM_LBUTTONDOWN :
SetWindowLong (hwnd, 0, 1 ^ GetWindowLong (hwnd, 0)) ;
InvalidateRect (hwnd, NULL, FALSE) ;
return 0 ;
作者: ly20041012 发布时间: 2011-11-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28