Win32API中的GetClassLong无效
如题,最近写win32程序想实现依据窗口句柄获取图标句柄的操作,经查询后需使用GetClassLong函数,但依据MSDN官方调用方法调用后总是返回0。FreeBasic和易语言的调用代码:
SendMessage方法和GetClassLongPtr(实际指向GetClassLongA)都试过了,都返回0 GetClassLongA / GetClassLongPtr 获取的应该是注册窗口信息时候的值,有些窗口可能是建立后再设定图标。
SendMessage 可以成功获取对应的图标句柄,不清楚你对应的代码是怎么写的,所以我也整了个简单的程序:
.版本 2
g_hIconBig = SendMessageA (hWnd, #WM_GETICON, #ICON_BIG, 0)
g_hIconSmall = SendMessageA (hWnd, #WM_GETICON, #ICON_SMALL, 0)
https://imgsrc.baidu.com/forum/pic/item/9358d109b3de9c823511b1ae2a81800a19d8439f.png
易语言示例代码和测试程序:
https://pan.baidu.com/s/1KTGuw8Enlg5M5zvFpAuBng?pwd=mhzp 真的可以获取到图标 爱飞的猫 发表于 2024-8-16 06:04
GetClassLongA / GetClassLongPtr 获取的应该是注册窗口信息时候的值,有些窗口可能是建立后再设定图标。
...
感谢,已经使用SendMessage解决了
页:
[1]