社区
界面
帖子详情
SetWindowLong问题
johntang
2014-02-01 03:31:49
我给一个listctrl设置响应函数
LRESULT CALLBACK clvwinprc(HWND hWnd, UINT Msg,WPARAM wParam,LPARAM lParam)
{
...
}
SetWindowLong(clv.hwnd, GWL_WNDPROC, clvwinprc);
编译时提示错误:不能将参数 3 从“LONG (__cdecl *)(HWND,UINT,WPARAM,LPARAM)”转换为“LONG”
这个问题怎样解决?
...全文
238
4
打赏
收藏
SetWindowLong问题
我给一个listctrl设置响应函数 LRESULT CALLBACK clvwinprc(HWND hWnd, UINT Msg,WPARAM wParam,LPARAM lParam) { ... } SetWindowLong(clv.hwnd, GWL_WNDPROC, clvwinprc); 编译时提示错误:不能将参数 3 从“LONG (__cdecl *)(HWND,UINT,WPARAM,LPARAM)”转换为“LONG” 这个问题怎样解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
johntang
2014-02-01
打赏
举报
回复
我用getlasterror() 返回1413, Invalid index. ERROR_INVALID_INDEX
johntang
2014-02-01
打赏
举报
回复
谢谢,编译通过了,可是运行后不调用clvwinprc,这为什么?
screen12
2014-02-01
打赏
举报
回复
SetWindowLong这个函数可以设置窗口的很多参数,这些参数类型各不相同,所以在设置的时候,大多需要进行类型的强制转换。
screen12
2014-02-01
打赏
举报
回复
那是因为SetWindowLong的第三个参数本来就是LONG型,而你输入的却是一个函数指针,当然不行了。 解决办法:强制转换一下就是了: SetWindowLong(clv.hwnd, GWL_WNDPROC, (LONG)clvwinprc);
在64位程序中调用
Set
Window
Long
指定窗口处理过程失效
问题
排查(附C++编译器数据模型)
本文讲述了在将32位C++程序升级到64位后,遇到
Set
Window
Long
设置窗口处理过程失效的
问题
,作者通过分析和对比不同API函数,发现需要使用
Set
Window
Long
Ptr以兼容32和64位,并解释了数据模型转换中的关键点。
Delphi使用
Set
Window
Long
修改子窗体属性,实现z轴任意覆盖
在Delphi中,默认子窗体会被限制在主窗体之上且不能被遮挡。解决这个
问题
可以通过
Window
s API函数
Set
Window
Long
来改变子窗体的父窗口。在子窗体的FormCreate事件中调用
Set
Window
Long
函数,传入参数Handle, GWL_HWNDPARENT, 0,即可让子窗体独立于主窗体,允许被主窗体遮挡。
Delphi2007中正确调用
Set
Window
Long
隐藏程序任务栏图标
本文详细介绍了在Delphi2007环境下如何正确使用
Set
Window
Long
函数来隐藏程序在任务栏的图标,解决了在
Window
sVista及更高版本操作系统上的兼容性
问题
。文章提供了具体的代码实现,并指出了在高版本编译器中实现此功能的折衷方案。
14
Window
s编程——
Set
Window
Long
本文介绍如何使用
Set
Window
Long
函数替换原有的窗口处理函数,并通过不同方式解决绘图
问题
,实现窗口绘图功能。
在64位C++程序中要用
Set
Window
Long
Ptr替换
Set
Window
Long
本文探讨了从32位程序升级到64位时,使用
Set
Window
Long
函数设置窗口处理过程失效的
问题
。介绍了如何替换为
Set
Window
Long
Ptr函数以兼容32位和64位程序,并解释了GWLP_WNDPROC宏的使用。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章