各位大虾们好!
    我在对话框中需要用到2个指示灯,有信号是灯亮,没有信号时灯灭,我加载了两个.ico格式的灯的图标,为何在程序运行后在对话框中显示的灯非常大,这是为什么呀?我怎么反它变小一些?这两个图标是我在一个MFC例子中的res文件夹中找到的,别人的显示出来都没有这么大啊。

解决方案 »

  1.   

    你可以把图标重新生成一个小的就可以了,自己做一个位图,比如位图大小为100 * 100,绘制的信号灯的直径为80,再做一个位图,大小为200 * 200, 信号灯直径为80,用这两个位图生成的图标中,第二个信号灯的大小是第一个的一半,当然,要做背景透明的图标,不然解决不了问题,你可以用FireWorks做png图像,背景透明,用工具软件把png图像转换为ico格式,另外你还一个做bmp位图,然后用位图透明直接贴位图的方式,这样的优点是好控制,缺点是太繁琐,建议用第一种方法,改一下图标就OK了
      

  2.   

    不好意思,我没有写明白!是这样的,
    我首先在对话框中添加了两个Picture,type为Icon,ID号分别为IDI_ICON_LedOnt和IDI_ICON_LedOff。
    在构造函数中写程序:
    m_hIconLedOn=AfxGetApp()->LoadIcon(IDI_ICON_LedOn);
    m_hIconLedOff=AfxGetApp()->LoadIcon(IDI_ICON_LedOff);
    再在OnInitDialog()中初始化了信号灯:
    m_ctrlicons1.SetIcon(m_hIconLedOn);   
    m_ctrlicons2.SetIcon(m_hIconLedOff);
    程序运行后,对话框中显示的信号灯非常大!这两个.ico格式的图片是我在别人的程序里面找的,别人的程序运行后信号灯很小,刚合适,我不知道问题出在哪里!
      

  3.   

    CImageList::Create
    BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow );返回值:如果成功,则返回非零值,否则为0。参数: cx 每个图象的尺寸,以像素为单位。  
           cy 每个图象的尺寸,以像素为单位。  研究下吧~
      

  4.   

    就是用的工具栏上的那个picture控件,但是我把类型已经改成了ICON格式的了