设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 950|回复: 4
打印 上一主题 下一主题

[窗体] 如何在自定的菜单中使用别的图标

[复制链接]
跳转到指定楼层
1#
发表于 2006-3-4 07:00:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何在自定的菜单中使用别的图标?系统提供的不够用啊,自己图又太麻烦

[此贴子已经被作者于2006-3-3 23:04:37编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-3-4 16:42:00 | 只看该作者
EXCEL中的例子:

本例會先將指定的控制項小圖示匯出檔案,然後再使用ExtractIcon API函數來提取該圖     示,最後使用SendMessage函數來更改Excel圖標



Declare Function DrawMenuBar Lib "user32" _

                            (ByVal hWnd As Long) As Long

Declare Function SendMessage Lib "user32" Alias "SendMessageA" _

                             (ByVal hWnd As Long, _

                              ByVal wMsg As Long, _

                              ByVal wParam As Long, _

                              lParam As Any) As Long

Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" _

                             (ByVal hInst As Long, _

                              ByVal lpszExeFileName As String, _

                              ByVal nIconIndex As Long) As Long

Declare Function FindWindow Lib "user32" Alias "FindWindowA" _

                            (ByVal lpClassName As String, _

                             ByVal lpWindowName As String) As Long



Const WM_SETICON = &H80

Const ICON_SMALL = 0&

Const ICON_BIG = 1&



--------------------------------------------------------------------------------



Sub Icon()

    Dim hWnd As Long

    Dim FIcon As String

    Dim objMaske As IPictureDisp

    '取得Excel hwnd

    hWnd = FindWindow("XLMAIN", Application.Caption)

    If hWnd = 0 Then Exit Sub

    FIcon = "C:test" & "Masketemp" & ".ico"

    '在工具列新增一個控制項(圖像:小豬)

    With Application.CommandBars(3).Controls.Add

        .Visible = True   '隱藏

        .FaceId = 52

        Set objMaske = .Picture  '物件的圖像

        stdole.SavePicture objMaske, FIcon   '將圖像輸出至檔案

        .Delete   '刪除新增的控制項(圖像:小豬)

    End With

    SetIcon hWnd, FIcon   '更改Excel圖標

    '刪除檔案

    Kill FIcon

End Sub



--------------------------------------------------------------------------------



Sub SetIcon(hWnd As Long, strIconName As String)

    Dim lngIcon As Long

    lngIcon = ExtractIcon(0, strIconName, 0)

    If lngIcon <> 0 Then

        Call SendMessage(hWnd, WM_SETICON, ICON_SMALL, ByVal lngIcon)

        Call SendMessage(hWnd, WM_SETICON, ICON_BIG, ByVal lngIcon)

        DrawMenuBar hWnd

    End If

End Sub
3#
发表于 2006-3-4 18:19:00 | 只看该作者
在外部复制图片(不是复制图片文件),在自定义菜单状态下,在那按钮上点右键,选"编辑图像",选ctrl+v.
4#
 楼主| 发表于 2006-3-6 03:45:00 | 只看该作者
还是自制要简单些
5#
发表于 2007-10-28 16:42:20 | 只看该作者
ok拉谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-27 02:54 , Processed in 0.101798 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表