热情软件屋

 

如何将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。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio