求救!我用LoadResPicture(PicName, vbResIcon)从资源文件中提取某一个图标到程序里的picturebox或Image或其他可以显示图形的控件里,如果图标的尺寸是大于或等于32x32的就很正常,但如果图标是小于32x32的,如16x16的图标,显示出来的时候,系统就会自动把它放大到32x32.我也试过把资源文件做到DLL里,用LoadIcon读取,但也同样出现这样的问题.请教问题出在哪,有什么解决的办法.

解决方案 »

  1.   

    我也遇到类似的情况,在IDE环境下运行,16*16的图标显示正常,
    但是编译后的exe里面,图标就会发虚(我是用在 ToolBar 上面)不知道有没有解决的办法,
    不行的话只好直接在ImageList中加载ico了
      

  2.   

    这个问题需要用ico编辑工具来处理一下,IconLover 3.0 这个工具不错,一个ico有可能有不同大小的ico 比如32*32*16 24*24*16 等,程序每次从第一个ico开始读取,用IconLover 3.0把不同大小的ico位置换一下就可以了。
      

  3.   

    加一个imagelist,指定imagelist的.ImageHeight和.ImageWidth属性
    如:
    With ils1
            .ListImages.Clear
            .ImageHeight = 16
            .ImageWidth = 16
            '
            'Add/Edit/Del/Save/Cancel/Find/Sort/First/Previous/Next/Last/Page/Exit
            
            .ListImages.Add 1, "Add", LoadResPicture("Add", vbResIcon)
            .ListImages.Add 2, "Edit", LoadResPicture("Edit", vbResIcon)
            .ListImages.Add 3, "DELETE", LoadResPicture("Delete", vbResIcon)
            .ListImages.Add 4, "Save", LoadResPicture("Save", vbResIcon)        ……
    End With设置TOOLBAR:
    '设置tlb1
        With tlb1
            .ImageList = ils1
            .AllowCustomize = False
            .Appearance = ccFlat
            .BorderStyle = ccFixedSingle
            .TextAlignment = tbrTextAlignRight
            .Style = tbrFlat
            
            'Edit/Save/Cancel
            .Buttons.Add 1, "Edit", SourceString(561), , 1 '修改
            .Buttons.Add 2, "Save", SourceString(405), , 2 '保存
            .Buttons.Add 3, "Cancel", SourceString(569), , 3 '取消        ……    End With