我手头上有一个用户控件(关于Menu的),未编译的Ctl源文件,它的使用感觉非常爽:
1.拖上此Menu控件至窗体,即会改变默认菜单为OFFICE XP 效果,根本不需要代码。 可是,现有用起来有点问题,由于是将所有的图标作为Image设置在控件内部的,通过控件本身的内部图片设置过程进行设置图标的,到第二、三个窗体就没办法设置图标。我本人不懂做用户控件,不会修改,汗! 各位大俠,留個郵件地址,我將源碼發過來,看能不能幫把那個圖標設置過程移植出來,或者將其改為控件的一個方法,如SetIcon什麼之類的,以方便使用。
改過之後,請Mail回我,謝謝!區區百分,不成敬意!
我的Mail: [email protected]
1.拖上此Menu控件至窗体,即会改变默认菜单为OFFICE XP 效果,根本不需要代码。 可是,现有用起来有点问题,由于是将所有的图标作为Image设置在控件内部的,通过控件本身的内部图片设置过程进行设置图标的,到第二、三个窗体就没办法设置图标。我本人不懂做用户控件,不会修改,汗! 各位大俠,留個郵件地址,我將源碼發過來,看能不能幫把那個圖標設置過程移植出來,或者將其改為控件的一個方法,如SetIcon什麼之類的,以方便使用。
改過之後,請Mail回我,謝謝!區區百分,不成敬意!
我的Mail: [email protected]
我简略的分析了一下这个Ctl,觉得有两种方法可行,如果完成的话,会使这个菜单控件的功能很丰满和便捷:我不懂弄,靠各位大侠了!
1.将所有窗体中需要用到的图标,统统放在控件的Image群集中,然后将GetPicture移植出来,使其能在任何窗体下应用。(最好将GetPicture变成为SetiCon方法,这样就可以随便调用了)
2.控件本身不含图标,每个窗体使用自定义的setIcon方法从窗体内的ImageList中为菜单设置图标.嗯,,第二种好像更美!
敬待高人的出现,解决如上难题!
[email protected]
[email protected]'==============================
感觉加一个属性就可以了
把imagelist控件传给这个控件,让他在内部调用
发东西发全啊~~
少了flexcell.ocx和ISubclassingSink库~~
'=======================
左右移动设置图标
那得加属性页比较好
你加个imagelist的属性,把窗体上的imagelist传给控件
要设置图标位置在imagelist控件里面设置
设完让XPMenu控件刷新一下显示图标的顺序
呵呵,,偶变大婶了......大哥,我再发过来给你,我查了下,是偶错了.....现在改过了,你再看看。FlexCell本身在工程里是不需要的....你的意见偶绝对支持,,将imagelist传给控件好理解,怎么跟设置imagelist里的位置有关系么?
唉,没心情写了~~'==========================================================
因为菜单对应图片可能不是连续的(比如第一项有图片,第二项没有图片)
所以感觉你这种还是写个属性页好点,这样才好把图片跟菜单项关联起来
原来他的是根据点击时取得的菜单名来设置图片的
你可以在设计时把菜单项列在属性页里让用户自行设置图片跟菜单关联
用数组把关系记下来,这样只要把ctxmenu控件里的GetPicture函数中的判断改成根据数组中的关系判断就可以了,别的都可以不改。
imagelist控件还是放窗体上,就像toolbar那样让用户选择关联哪个imagelist
主要还是没时间,
还有什么不明白的再发邮件发QQ发贴都行
唉,没心情写了~~
======================不是吧!================我等了N久,上来逛了十几次....呜呼哀哉....要不这样,把这两个组装一下,将HookMenu中关于Imagelist的部分有属性页的.移植到另一工程中的ctl中来就得了。也即是只在hookMenu中找需要的东东,加到ctl中来。要的结果只是这个ctl
HookMenu中属性页的部分已经完善了,只是太多,找不到位置......晕!
3、添加一个SetImage方法,用于设置图标
(这样的就不需要什么属性页,直接少量代码设置图标,绝大多数用VB的兄弟相信都是可以接受的)
如 SetImage MnuName,Icon,Optional MaskColor as long=#0说到底,就是要做上面两个东东,除拉个控件到窗体,加上两句就可以为其设置OFFICE XP图标了: hookMenu.Images=Imagelist2
hookMenu.Setimage "MnuOpen",2,#0
........ 各位大佬,来顶啊....我受不了了,熬了很久了.....
大佬,有没有办法?
應該不會很難