主题:请教高手:对话框图标的加载
图标文件使用图标软件制作:16×16+32×32,16色;
在资源文件中定义了图标资源和对话框资源;
;程序主过程:
Start:call GetModuleHandleA,0 ;取得模块句柄,返回结果在eax中
mov hInst,eax ;保存句柄
;调用DialogBoxParamA显示对话框
call DialogBoxParamA,eax,offset DialogName,0,offset DialogProc,0
……
;对话框消息处理过程
WmInitDialog: ;对话框初始化处理
call LoadIcon,hInst,offset IconName ;为对话框加载图标
……
感觉应该在对话框初始化消息处理中加载对话框的图标(标题左边的),故照此处理。编译链接生成的执行文件图标是所绘制的32×32图标没错,但运行之后,对话窗的图标却显示为系统默认的! 跟踪初始化过程,LoadIcon函数返回句柄正确。
应该是上面的处理缺少点什么(VC/C++讨论此问题的帖子很多,在LoadIcon后紧跟着SetIcon,但是SetIcon不是Win32 API函数!Delphi下实现很简单,但没发现参考价值),但实在不知从何下手了。请高手指点一二!谢谢!
在资源文件中定义了图标资源和对话框资源;
;程序主过程:
Start:call GetModuleHandleA,0 ;取得模块句柄,返回结果在eax中
mov hInst,eax ;保存句柄
;调用DialogBoxParamA显示对话框
call DialogBoxParamA,eax,offset DialogName,0,offset DialogProc,0
……
;对话框消息处理过程
WmInitDialog: ;对话框初始化处理
call LoadIcon,hInst,offset IconName ;为对话框加载图标
……
感觉应该在对话框初始化消息处理中加载对话框的图标(标题左边的),故照此处理。编译链接生成的执行文件图标是所绘制的32×32图标没错,但运行之后,对话窗的图标却显示为系统默认的! 跟踪初始化过程,LoadIcon函数返回句柄正确。
应该是上面的处理缺少点什么(VC/C++讨论此问题的帖子很多,在LoadIcon后紧跟着SetIcon,但是SetIcon不是Win32 API函数!Delphi下实现很简单,但没发现参考价值),但实在不知从何下手了。请高手指点一二!谢谢!