PB动态建立
菜单的步骤如下:1.创建模版菜单(m_template)2.a)、在模版菜单里创建动态添加
菜单项的函数:/*====================================Funtionname:Of_addmemuDescription:将模版菜单项添加给指定的菜单Argument:menuam_menu(添加菜单)stringas_text(创建菜单项的text)stringas_tag(创建菜单项亏伏哗的tag)ReturnValue:succeed1=====================================*/lm_itemm_templateintegerli_itemcountlm_item=createm_templatelm_item.text=as_textlm_item.tag=as_tagli_itemcount=upperbound(am_menu.item[])li_itemcount=li_itemcount+1am_menu.item[li_itemcount]=lm_itemreturn1b、在模版菜单中创建
d出菜单的函数/*====================================Funtionname:Of_popmemuDescription:d出指定的厅核菜单Argument:menuam_menu(d销行出菜单)integerai_x(d出菜单的x坐标)integerai_y(d出菜单的y坐标)ReturnValue:NONE=====================================*/am_memu.popmenu(ai_x,ai_y)为了能够一次创建多个菜单项定义函数f_dynamic_menuitem()/*======================================Funtionname:f_dynamic_menuitemArugment:stringas_menuitem[](添加菜单项的名称)integerai_x(d出菜单的x坐标)integerai_y(d出菜单的y坐标)===================================*/integerli_itemcount,im_templatelm_dynamic_menuli_itemcount=upperbound(as_menu[])fori=1toli_itemcountlm_dynamic_menu.of_additem(lm_dynamic_menu,as_menu[i],string(i))nextlm_dynamic_menu.of_popmenu(ai_x,ai_y)destory(lm_dynamic_menu)
通过CreateMutexA函数喊皮创建一个互斥体,然后用GetLastError来获取返塌渗塌回值判断是否重复开启同一个应用。
实现过程:
外部函数声明
Function ulong CreateMutexA (ulong lpMutexAttributes, int bInitialOwner, ref string lpName) library 'kernel32.dll'
Function ulong GetLastError () library 团圆'kernel32.dll'
APP的open事件代码
string ls_mutex_name
long ll_mutex
long ll_err
if handle (GetApplication(),false) <> 0 then
ls_mutex_name = this.AppName
ll_mutex = CreateMutexA (0,0,ls_mutex_name)
ll_err = GetLastError ()
if ll_err = 183 then
messagebox("","程序重复开启")
Halt close
end if
end if
open(w_open)
评论列表(0条)