【PB】带位图的菜单项实现

当读者在使用 Microsoft Word 97 时,是否曾注意到 Word 的部分菜单项旁有一个小巧的图标 (如图1所示),初次见到时,是否有耳目一新的感觉,是否想过让 PowerBuilder 创建的菜单项和他一样漂亮。只可惜 Sybase 至今仍未实现该功能,令得广大的 PowerBuilder 用户只能去羡慕别人。不过文本将探讨如何用 PowerBuilder 和 Win32 API 来实
摘要由CSDN通过智能技术生成

当读者在使用 Microsoft Word 97 时,是否曾注意到 Word 的部分菜单项旁有一个小巧的图标 (如图1所示),初次见到时,是否有耳目一新的感觉,是否想过让 PowerBuilder 创建的菜单项和他一样漂亮。只可惜 Sybase 至今仍未实现该功能,令得广大的 PowerBuilder 用户只能去羡慕别人。不过文本将探讨如何用 PowerBuilder 和 Win32 API 来实现带位图的菜单项。

图1图1

相关的Win32 API函数

为了将位图与菜单项关联起来,必须调用 SetMenuItemBitmaps 函数。该函数可以改变 Checked 和 Unchecked 状态的图标,读者可以将缺省的勾号 (√) 改为开关或圆形按钮之类的更可爱的图标。我们要实现的带位图菜单项就靠该函数改变 Unchecked 状态图标。其 Powersoft 原型为:

Function Boolean SetMenuItemBitmaps(&
                   ULong hMenu, & /*子菜单的句柄*/
                   UINT uPosition, & /*菜单项在子菜单中的位置*/
                   UINT uFlags, & /*位置类型标志*/
                   ULong hBitmapUnchecked, & /*Unchecked状态对应的位图句柄*/
                   Ulong hBitmapChecked & /*Checked状态对应的位图句柄*/
           ) Library "User32.DLL" 

uFlags 为 MF_BYCOMMAND(0) 时,uPosition 得是该菜单项的标识号;MF_BYPOSITION(1024) 时,uPosition 得是基于 0 的相对位置。

然而,在调用 SetMenuItemBitmaps 函数前,必须调用 GetMenu 和 GetSubMenu 获取子菜单的句柄。 GetMenu 函数用于获取主菜单的句柄,GetSubMenu 函数用于获取子菜

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值