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

本文介绍了如何利用PowerBuilder结合Win32 API函数SetMenuItemBitmaps来实现带位图的菜单项,从而提升PowerBuilder应用的界面美观度。通过GetMenu、GetSubMenu等函数获取菜单句柄,并使用LoadImageA加载位图资源,最终在菜单项中显示图标。
最低0.47元/天 解锁文章
885

被折叠的 条评论
为什么被折叠?



