控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

为按钮控件添加图片的方法

作者:未知 出处:不详 2010年02月24日 阅读:

第一种:


Button 属性页里 Style 的 Bitmap 点上

CBitmap Bitmap;

Bitmap.LoadBitmap(IDB_BITMAP1);

HBITMAP hBitmap=(HBITMAP)Bitmap.Detach();

CButton *pButton=(CButton*)GetDlgItem(IDCANCEL);

pButton->SetBitmap(hBitmap);

感觉效果不是很好。因为图片不会自动拉伸。

第二种:

可以采用 CButtonST 控件,挺好用的,比 MFC 的那些封装好用。

第三种:

把 button 按钮属性设置为 ower draw

然后映射 onDrawItem 消息

在 ondraw 函数内自己绘制就可以了

void CUi6Dlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)

{

if(nIDCtl == IDC_HELLO_CFAN)

{

//绘制按钮框架

UINT uStyle = DFCS_BUTTONPUSH;

//是否按下去了?

if (lpDrawItemStruct->itemState & ODS_SELECTED)

uStyle |= DFCS_PUSHED;

CDC dc;

dc.Attach(lpDrawItemStruct->hDC);

dc.DrawFrameControl(&lpDrawItemStruct->rcItem, DFC_BUTTON, uStyle);

//输出文字

dc.SelectObject(&m_Font);

dc.SetTextColor(RGB(0, 0, 255));

dc.SetBkMode(TRANSPARENT);

CString sText;

m_HelloCFan.GetWindowText(sText);

dc.TextOut(lpDrawItemStruct->rcItem.left + 20, lpDrawItemStruct->rcItem.top + 20, sText);

//是否得到焦点

if(lpDrawItemStruct->itemState & ODS_FOCUS)

{

//画虚框

CRect rtFocus = lpDrawItemStruct->rcItem;

rtFocus.DeflateRect(3, 3);

dc.DrawFocusRect(&rtFocus);

}

return;

}

CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);

}


第四种:


1,按钮属性 Onwer Drew  选上,按钮 ID: IDC_BUTTON1

2,定义 private 变量:

     CBitmapButton m_button;

3,在初始化里边

m_button.LoadBitmaps(IDB_BITMAP1, IDB_BITMAP2);//IDB_BITMAP1:平时;IDB_BITMAP2:按下

m_button.SubclassDlgItem(IDC_BUTTON1, this);

m_button.SizeToContent();

这种方法还可以。


                                                           
                                                            【注:本文由控件中国网转载】

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统