MDI窗口已打开的sheet,自动添加下拉菜单问题

yyoinge 2011-09-16 12:06:36
MDI窗口,通过OpenSheet(Sheetrefvar{,windowtype},mdiframe,{,position{,arrangeopen}})打开sheet窗口后再position对应的菜单下面会自动添加一个菜单项

但是,通过upperbound(菜单项.item)取得的值却不包括自动添加的已打开sheet菜单项,这个是怎么实现的呢?



另外,如何能够实现在单击(clicked)或者选择(selected)MDI主窗口的某一菜单项时,动态添加并显示本次添加的菜单项呢?
主要是显示,动态添加倒是没有难度,但是添加后由于当前焦点还在菜单上,所以无法事实显示出本次动态添加的菜单项。只能在再次单击MDI主窗口的菜单项后,才能看到上一次动态添加的菜单项。如何在能够马上添加马上显示出来呢?


...全文
121 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yanyyh 2011-10-21
是否想把已打开的所有窗口Sheet对应的菜单找出来,再动态来插入呢?

window下有getfirstsheet与getnextsheet函数,可以用来找到所有已打开的窗口

然后如果菜单的tag中或数据库中有菜单对应窗口的classename,则可以实现您所需的动态要求

不知道这样是否可行
回复
LamarChen 2011-09-29
深奥 + 需求比较怪
回复
feifeihcb 2011-09-29
帮你顶起来,要不弄个对应的地方弄个enchange事件。。
回复
好深奥呀。
回复
yyoinge 2011-09-29
发现这个问题,在CSDN上,是寻找不到答案了

下午5点准时结贴吧!

回复者均有分
回复
szgw 2011-09-27
200�ְ��������ʺö����Ⱑ���ϴ����ֺò���
回复
yyoinge 2011-09-26
[Quote=引用 2 楼 gzhujus 的回复:]
不知道有没误解你的意思,或许可以尝试用数组来做.


C/C++ code

int li_rc
w_basesheet lw_sheet

/* Open an instance of the specified sheet */
li_rc = OpenSheet ( lw_sheet, as_sheetname, w_mdi_main, 0, Cascaded! )
……
[/Quote]

误解了!! 呵呵

我要的是在主菜单上,当鼠标移动到特定一级菜单时,动态生成二级或三级子菜单
回复
天上人间 2011-09-26
不知道有没误解你的意思,或许可以尝试用数组来做.


int li_rc
w_basesheet lw_sheet

/* Open an instance of the specified sheet */
li_rc = OpenSheet ( lw_sheet, as_sheetname, w_mdi_main, 0, Cascaded! )

If li_rc = 1 Then
/* Add the sheet reference to the open sheet array */
iw_opensheets[UpperBound(iw_opensheets)+1] = lw_sheet
End If
回复
dawugui 2011-09-17
200分很诱人,不懂,帮你顶.
回复
相关推荐
发帖
控件与界面
创建于2007-09-28

588

社区成员

PowerBuilder 控件与界面
申请成为版主
帖子事件
创建了帖子
2011-09-16 12:06
社区公告
暂无公告