我手头上有一个用户控件(关于Menu的),未编译的Ctl源文件,它的使用感觉非常爽:
    1.拖上此Menu控件至窗体,即会改变默认菜单为OFFICE XP 效果,根本不需要代码。    可是,现有用起来有点问题,由于是将所有的图标作为Image设置在控件内部的,通过控件本身的内部图片设置过程进行设置图标的,到第二、三个窗体就没办法设置图标。我本人不懂做用户控件,不会修改,汗!    各位大俠,留個郵件地址,我將源碼發過來,看能不能幫把那個圖標設置過程移植出來,或者將其改為控件的一個方法,如SetIcon什麼之類的,以方便使用。
    
    改過之後,請Mail回我,謝謝!區區百分,不成敬意!
    我的Mail: [email protected]

解决方案 »

  1.   

    补充说明一下:
        我简略的分析了一下这个Ctl,觉得有两种方法可行,如果完成的话,会使这个菜单控件的功能很丰满和便捷:我不懂弄,靠各位大侠了!
        1.将所有窗体中需要用到的图标,统统放在控件的Image群集中,然后将GetPicture移植出来,使其能在任何窗体下应用。(最好将GetPicture变成为SetiCon方法,这样就可以随便调用了)
        2.控件本身不含图标,每个窗体使用自定义的setIcon方法从窗体内的ImageList中为菜单设置图标.嗯,,第二种好像更美!
    敬待高人的出现,解决如上难题!
      

  2.   

    能让我看看吗?
    [email protected]
      

  3.   

    发一个看看
    [email protected]'==============================
    感觉加一个属性就可以了
    把imagelist控件传给这个控件,让他在内部调用
      

  4.   

    如果加一个ImageList属性,以便于利用imagelist中的ICon,可以改到属性框中,添加一个类似ToolBar的功能,左右移动设置图标,那......简直是帅呆了~!可是,,光说,,,是没有用的...!
      

  5.   

    大婶~~~,
    发东西发全啊~~
    少了flexcell.ocx和ISubclassingSink库~~
    '=======================
    左右移动设置图标
    那得加属性页比较好
      

  6.   

    算了,
    你加个imagelist的属性,把窗体上的imagelist传给控件
    要设置图标位置在imagelist控件里面设置
    设完让XPMenu控件刷新一下显示图标的顺序
      

  7.   


    呵呵,,偶变大婶了......大哥,我再发过来给你,我查了下,是偶错了.....现在改过了,你再看看。FlexCell本身在工程里是不需要的....你的意见偶绝对支持,,将imagelist传给控件好理解,怎么跟设置imagelist里的位置有关系么?
      

  8.   

    刚才写了好大片,结果一提交,说我没登录?,全没了,白写了
    唉,没心情写了~~'==========================================================
    因为菜单对应图片可能不是连续的(比如第一项有图片,第二项没有图片)
    所以感觉你这种还是写个属性页好点,这样才好把图片跟菜单项关联起来
    原来他的是根据点击时取得的菜单名来设置图片的
    你可以在设计时把菜单项列在属性页里让用户自行设置图片跟菜单关联
    用数组把关系记下来,这样只要把ctxmenu控件里的GetPicture函数中的判断改成根据数组中的关系判断就可以了,别的都可以不改。
    imagelist控件还是放窗体上,就像toolbar那样让用户选择关联哪个imagelist
    主要还是没时间,
    还有什么不明白的再发邮件发QQ发贴都行
      

  9.   

    刚才写了好大片,结果一提交,说我没登录?,全没了,白写了
    唉,没心情写了~~
    ======================不是吧!================我等了N久,上来逛了十几次....呜呼哀哉....要不这样,把这两个组装一下,将HookMenu中关于Imagelist的部分有属性页的.移植到另一工程中的ctl中来就得了。也即是只在hookMenu中找需要的东东,加到ctl中来。要的结果只是这个ctl
    HookMenu中属性页的部分已经完善了,只是太多,找不到位置......晕!
      

  10.   

    事实上,使用hookMenu控件本身已经能完成所要的菜单效果,,,我主要是明白的是这个问题本身!你看这样改改行不行,我不会改,这个思路应该对的!如果哪位大侠改完了,再编绎出来,奉献给大家,就不会有那么多的兄弟为了这个东西苦恼了....1、让ctxHookMenu控件只实现Office Xp效果.(也即是这个控件一拖上去,菜单即会改成OfficeXP风格了,这个部分代码里面已经实现了)2、添加一个Images属性,为菜单设置图标来源.
    3、添加一个SetImage方法,用于设置图标
       (这样的就不需要什么属性页,直接少量代码设置图标,绝大多数用VB的兄弟相信都是可以接受的) 
       如  SetImage MnuName,Icon,Optional MaskColor as long=#0说到底,就是要做上面两个东东,除拉个控件到窗体,加上两句就可以为其设置OFFICE XP图标了:  hookMenu.Images=Imagelist2
      hookMenu.Setimage "MnuOpen",2,#0
     ........   各位大佬,来顶啊....我受不了了,熬了很久了.....
    大佬,有没有办法?
      

  11.   

    给我一个瞧瞧可以吗?[email protected]
      

  12.   

    [email protected]我不会改,因为时间不多但是,我看了用了以后,会提有用建议的
      

  13.   

    这几天上不了CSDN,上面的防火墙竟然把这个都屏敝到了,,,惨,现在在网吧,给不了啊。一会明天我发到邮箱里,再到网吧传过来,,,各位老兄,对不住啊!
      

  14.   

    [email protected] 
    應該不會很難
      

  15.   

    看我能否读懂源代码?我也正在研究菜单界面的问题:[email protected]
      

  16.   

    [email protected]   发给我看看
      

  17.   

    不需要他发了,以前我就有这个代码,地址如下:http://www.m5home.com/bbs/dispbbs.asp?boardID=10&ID=457&page=1不想注册的使用这个名字进去:User:   everyonePWD:    123456
      

  18.   

    实在是不好意思,,,偶前段日子被上头把网给封了,,,,TNND,妒嫉偶上CSDN,,,天天逛那么久,,,居然在网路岗中把偶的CSDN社区关闭了,惨无人道啊!.各位兄台,,别踹我...!顶它一顶,送分来了.!