第二个问题:在VB中,用loadrespicture从资源文件中获取的图标为什么都是32*32的,怎么样提取16*16的。

解决方案 »

  1.   

    我使用 Image 控件试了一下, 把属性设称 Stretch 设置成 True 就可以了
      

  2.   

    刚才做了以个试验, Form 上加了一个 Image1, 没有问题Sub Form_Load()Image1.Stretch = True
    Image1.Picture = LoadResPicture(101, vbResIcon)
      

  3.   

    老大,Stretch为真时图像大小是根据Image1的大小缩放的。
      

  4.   

    我想看源码,可是公司里上不了QQ,我mail [email protected]、资源文件里的图标是不是原来就是32X32的呢,把16X16的放到资源里试试
      

  5.   

    有空发我一个。
    [email protected]
      

  6.   

    完工后,记得发一个给我!
    子菜单的那一部分程序,可以参考zyl910的。
      

  7.   

    部分可以参考 http://www.vbsmart.com, 我觉得那个做的很不错, 可惜不是 Open Source 的[email protected]
      

  8.   

    请使用ModifyMenu函数(详细情况请看API参考),可以图形化菜单
    以下是调用例:
    Dim hMenu as Long,hSubMenu as Long,MenuId as long
    hMenu = GetMenu(me.hwnd) '获得该窗口菜单的句柄
    hSubMenu = GetSubMenu(hMenu, 0) '取得第0个子菜单的hSubMenu(子句柄)
    MenuId = GetMenuItemId(hSubMenu,1)'取得hSubMenu的第1个命令的MenuID
    ModifyMenu hSubMenu,1,MF_BYPOSITION Or MF_STRING,MenuID,"HAHA"
       '文字标题改为“HAHA”
    Static Pic As Picture
    Set Pic = LoadPicture("PicName.Bmp")
    MenuID = GetMenuItem(hSubMenu, 2)
    ModifyMenu hSubMenu,2,MF_BYPOSITION Or MF_BITMAP, MenuID, Pic.Handle
    '祝好运
    '有空的话,给我发一份:[email protected]
      

  9.   

    to _TMG_(Alan) :
    我就是在http://www.vbsmart.com的创意下写的菜单程序。部分技术是从那里了解到的。
      

  10.   

    to zhsu(做人Bata版),ypyao850:
       贴Picture什么意思?在箭头上贴图???
      

  11.   

    [email protected]   谢谢
    顺便问一下,你做的XP菜单有没有阴影背影啊?? 就像2K和XP一样! ̄ ̄
      

  12.   

    不过我觉得, 写一个 Component 更好一些, 提供一些方法,把 VB6 的菜单直接转换成 XP 风格
      

  13.   

    对于右箭头,除了贴图片外,还可以:
    把字体设为Webdings
    再绘制字符“4”就行了
      

  14.   

    有空发我一个。
    [email protected]
    谢谢!!
      

  15.   

    zyl910(910:分儿,我来了!) (L2002)说的对你不是要画箭头吗?可以用图片。还有,他说的方法也很好,只是我没有试过
      

  16.   

    想要一个:
        [email protected]
      

  17.   

    关注中!!
    看看 能不能用在我的程序中!我现在用一个VBSKIN.DLL做皮肤的,如果你的好用,就用你的了!谢谢了!
      

  18.   

    能给我看看吗?
    [email protected]
      

  19.   

    to adv_21(口袋金) :
       当然有阴影,不然怎么叫xpmenu.
    to 大家:
       想要源程序的请等星期一。因为我说了,还没有加热键支持,如果想先看看,可以到qq上找我。
      

  20.   

    我的那个DLL能在顶级菜单栏自绘一个现在工具栏流行的新颖(“一组短横线”)的移动指示,其它例子多多,欢迎交流!!!!
      

  21.   

    我也来一份吧,谢了。[email protected]
      

  22.   

    能否给我瑜一个[email protected]
    谢!
      

  23.   

    首先我要检讨自己的错误!本来星期六、日放假,打算将菜单程序写完给大家的,谁知道星期六在酒吧喝多,星期天又碰上电脑罢工。搞得我都不好意思上来了。为了赎罪,已经把未完工的程序打包放在了我的一个邮箱[email protected]中(在草稿箱里,登录口令是:windows)。需要的朋友可以自己下来看。我会尽快把未完成的工作补出来。希望大家能够谅解。vbangle(vbangle) :
       真对不住,我星期六和星期日不上班,而我是在上班时才上qq的。所以...(qq时间:星期一至星期五,9:00-17:30,很高兴认识你)。
      

  24.   

    目前 TestMenu 存在的 Bug, 
    1. 连续两次鼠标右键, 位置不变, 再次在空白地区点右键, 出现非法错误
    2. 在菜单上点击鼠标右键, 再次在空白地区点右键, 出现非法错误两个错误, 可能是一个原因
      

  25.   

    to _TMG_(Alan):
        谢谢关心,网友b_wind已经告诉了我这个Bug.本人才疏学浅让大见笑了。我正在修改它们(还有一些Bug,比如在windowsxp下菜单阴影异常等),谢谢你的关心。to vbangle(vbangle)、NowCan(能量、激情、雨水、彩虹——雷雨云):
        不要意思,由于工作比较忙,没有时间搞主页,现在在和一个朋友商量,希望不久的将来会在网上安个家。to 大家:
        本人才疏学浅,有没有水平高的帮一下手。我希望能约到几个人一起搞,把功能搞全一些。如xp的工具条等,一起做出来。
        再次感谢大家的关心。
      

  26.   

    To 大家:
     其实程序主要有几点比较特别,我在这里说一下:
    1.利用Hook截获每一个新生成的窗体(其实Windows的菜单都使用一个类名为"#32768"的窗体完成的),然后将它们的类型设置为平面的。需要说明的是如果需要修改的是窗体上的菜单而不是PopupMenu,那么Windows有时并不创建新的窗体,而是直接使用一个句柄固定为65554的窗体,这是一个很奇怪的窗体,处理它的时候要小心,如果想了解具体的情况,可以联系我。2.绘制阴影。需要计算这个菜单用到的窗体会在什么地方出现。然后利用屏幕上的原始图案来生成阴影。3.处理边框。Windows的菜单是重叠的(有4个像素的重叠),而xp菜单没有,所以需要处理这些重叠的地方,使其看起来没有重叠。还有一些问题有待解决:
    1.过长的菜单,如果一个菜单拥有过多的项,应该像xp菜单一项在上下方使用箭头来滚动。
    2.优先级别,xp的菜单有优先级别,对于不常用的菜单会隐藏,在单击最下方的箭头后再出现。这也称为个性化菜单。
    3.菜单在运行时的自定义。
    这些功能在ActiveBar中完成的很好,但在vbsmart的菜单中没有支持。我打算把它们做出来。希望有高手来指点我一下。本人感激不尽。
      

  27.   

    to _TMG_(Alan):
        右键Bug的修正:找到类TExtendMenu中方法ShowPopupMenu的行:
        lngFlags = TPM_RETURNCMD 
        将其改为
        lngFlags = TPM_RETURNCMD Or TPM_RIGHTBUTTON
      

  28.   

    to 大家:
       真惭愧,我犯了一个致命的错误!在我一次次的跟踪了解之后发现,所谓的Xp菜单应该不是真正的菜单。它是由一个类名为msoCommandBarPopup的窗体和两个类名为msoCommandBarShadow的窗体实现的。实现的步骤我己经大体的了解。但有一个关键的问题搞不明白。就是一个类型为Layered的窗体,这种窗体是2000/xp新增加的,主要完成窗体半透明的操作。我只了解到这里,具体的使用方法我都不是很了解。不知道有没有人可以帮我一下。先谢谢了。问题在:http://www.csdn.net/expert/topic/881/881513.xml?temp=.7542841。我用100分谢你,不够的话我可以加。
      

  29.   

    to: foxmsdn(天堂雪狐)你的问题我不是很懂,我主要搞数据库的,不过在提供一些建议:1. 使用 emiCheckBox 样式的菜单项, 有点问题, 应选在左侧画一个选中的框
    2. 可不可以 emiCheckBox 样式的菜单项也有自己的图标, 如果有图标的画, 就把图标画一个框, 没有就用打勾