程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> 位圖菜單的制作

位圖菜單的制作

編輯:SyBase綜合文章
*******************************************************
實用環境:pb6.5\pb70\pb80\pb90
功 能:位圖菜單的制作
方 法:如下
*******************************************************
第一步,首先要建立一個menu對象,命名為:m_bitmap。設計格式有
一個主菜單 File,下面有4個子菜單new\open\save\exit,如下:
----File-----
-new
-open
-save
-exit
第二步,找4個位圖文件,放到exe所在的目錄下,命名為:new.bmp\open.bmp\save.bmp\exit.bmp
第三步,編代碼
主窗體w_main,窗體類型main,加入主菜單m_menu。
實例變量聲明:
//Win32常量
CONSTANT Integer IMAGE_BITMAP = 0
CONSTANT Integer LR_LOADFROMFILE = 16
CONSTANT Integer SM_CXMENUCHECK = 71
CONSTANT Integer SM_CYMENUCHECK = 72
CONSTANT Integer MF_BITMAP = 4
CONSTANT Integer MF_BYPOSITION = 1024
全局外部函數引入API:
FUNCTION ulong LoadImageA(ulong hintance, string filename,uint utype,&
int x,int y,uint fload) LIBRARY "USER32.DLL"
FUNCTION boolean SetMenuItemBitmaps(ulong hmenu,uint upos,uint flags,&
ulong handle_bm1,ulong handle_bm2) LIBRARY "USER32.DLL"
FUNCTION int GetSystemMetrics( int nIndex ) LIBRARY "USER32.DLL"
FUNCTION ulong GetMenuItemID(ulong hMenu,uint uItem) LIBRARY "USER32.DLL"
FUNCTION int GetSubMenu(ulong hMenu,int pos) LIBRARY "USER32.DLL"
FUNCTION ulong GetMenu(ulong hWindow) LIBRARY "USER32.DLL"
FUNCTION boolean ModifyMenu(ulong hMnu, ulong uPosition, ulong uFlags, &
ulong uIDNewItem, long lpNewI) alias for ModifyMenuA LIBRARY "USER32.DLL"
open事件中:
long ll_MainHandle
long ll_SubMenuHandle
integer li_MenuItemID
long ll_X
long ll_Y
long ll_BitmapNew
long ll_BitmapOpen
long ll_BitmapSave
long ll_BitmapExit
//取得菜單句柄
ll_MainHandle = GetMenu(Handle(this))
//取得第一個菜單項的句柄
ll_SubMenuHandle = GetSubMenu(ll_MainHandle,0)
//裝入圖像數據
ll_BitmapNew = LoadImageA(0,’new.bmp’,IMAGE_BITMAP,0,0,LR_LOADFROMFILE)
ll_BitmapOpen = LoadImageA(0,’open.bmp’,IMAGE_BITMAP,0,0,LR_LOADFROMFILE)
//取得第一個子菜單項的ID並修改菜單
li_MenuItemID = GetMenuItemID(ll_SubMenuHandle,0)
ModifyMenu(ll_SubMenuHandle,li_MenuItemID,MF_BITMAP,li_MenuItemId,ll_BitmapNew)
//取得第二個子菜單項的ID並修改菜單
li_Menu
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved