如何将EXE中的图标显示在按钮上
编号:QA001586
建立日期: 1999年8月24日 最后修改日期:2000年5月23日
所属类别:
冯晖:
vb5.0
windows95
我编了这样的一个小程序,希望程序启动后能获得某个.exe执行文件的图标,并将此图标显示在某一个按钮上。程序如下:
Private Sub Form_load()
hicon = ExtractIcon(App.hInstance, "c:\game\df\df.exe", 0)
commandhdc = GetDC(Command1.hwnd)
DrawIcon commandhdc, 0, 0, hicon
End Sub
但运行时发现窗体载入后,drawicon commandhdc,0,0,hicon这一句似乎并未执行,但我将此句加在按钮command1的click事件中,单击按钮却能够执行,显示出了图标。请问这是为什么?能不能在窗体一载入,不执行任何操作便能完成上述功能,将图标显示在按钮上。(注:程序中使用的api函数都已说明)谢谢!
回答:
这样做:
1、先加入一个PictureBox,将Visible属性设置为False;
2、设置按钮的Style为1;
3、输入以下代码。
Private Sub form_load()
Dim hIcon As Long
hIcon = ExtractIcon(App.hInstance, "e:\vb5\vb5.exe", 0)
Picture1.AutoRedraw = True
DrawIcon Picture1.hDC, 0, 0, hIcon
Command1.Picture = Picture1.Image ' 这是技巧
End Sub
WangHonggen问:
操作系统: Windows98
编程工具: Visual Basic
问题: 如何获取.EXE文件中的图标资源,并把该图标资源存放在 stdPicture 类对象中(由于没有界面,所以不能使用 PictureBox 控件和 Image 控件对象)?
回答:在利用ExtractIcon得到句柄之后,你可以参考QA000105 "如何将PictureBox中的图形与控件一起转换为BMP图"直接使用OleCreatePictureIndirect将图标转换为stdPicture。
此问题由李海回答。
| |
|
|
| |
|
|