| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1139 人关注过本帖, 1 人收藏
标题:关于在按钮上加载位图图标
只看楼主 加入收藏
gradual
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-10-19
结帖率:33.33%
收藏(1)
已结贴  问题点数:0 回复次数:1 
关于在按钮上加载位图图标
    CBitmap bitmap;
    bitmap.LoadBitmap("testFounction.ico");
    m_BUTTON2.SetBitmap(bitmap);


用这段代码给按钮加载图标,为什么不显示加载的ico?
2011-11-04 21:32
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
收藏
得分:2 
步骤:
① 从外部导入一个位图或自己创建一个位图作为资源。
② 从资源中载入所要使用的位图。
③ 在要使用位图的按钮上设置位图。

具体实现:
   第一步从外部导入一个位图作为资源。
   第二步中,利用函数 LoadBitmap() 从资源中载入位图。函数 LoadBitmap() 为一个 API 函数,定义如下:
HBITMAP LoadBitmap(
HINSTANCE hInstance, // handle of application instance
LPCTSTR lpBitmapName // address of bitmap resource name
);
所以,为达到载入位图的目的,不仅要定义一个位图句柄 hBitmap:
             HBITMAP hBitmap;
而且还要定义一个应用程序实例句柄 hInstance;:
             HINSTANCE hInstance;
并调用函数 AfxGetInstanceHandle() 以获得当前的应用程序实例句柄,代码如下:
hInstance = ::AfxGetInstanceHandle();
只有在声明并获得了当前的应用程序句柄后,才能使用以下语句载入位图:
hBitmap = ::LoadBitmap(hInstance,"BMP1");
注意,在函数 LoadBitmap() 中的第二个参数为资源名,而非资源 ID。因为资源名是一个字符串,而资源 ID 则是一个整型量。所以在创建或导入位图后,为该位图资源命名时要加上双引号以表示这是一个资源名。
   
   第三步中,为要使用位图的按钮设置位图。首先是要在使用位图的按钮的 Properties 设置中设置 Bitmap 属性,指明该按钮是一个位图按钮。然后再调用 CButton 类函数 SetBitmap() 为按钮设置位图。代码如下:
// m_BtonBmp 为一个 CButton 类对象。
m_BtonBmp.SetBitmap(hBitmap);

pWnd = GetDlgItem(IDC_Check);
pBton = (CButton *) pWnd;
pBton -> SetBitmap(hBitmap);
2011-11-05 09:45
快速回复:关于在按钮上加载位图图标
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015293 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved