vc++6.0 如何创建位图按钮?

2024-12-25 16:47:09
推荐回答(2个)
回答1:

先装入一副BMP图片资源,ID修改为IDB_BMP;
再在按钮属性设置对话框选“风格”标签,在里面选中Bitmap复选框,然后在对话框类头文件增加一个CBitmap类型变量m_bitmap;
在WM_INITDIALOG消息处理函数里面加入如下代码:
BOOL conver::OnInitDialog()
{
CDialog::OnInitDialog();

m_bitmap.LoadBitmap(IDB_BMP);

CButton *m_pButton;
m_pButton=(CButton*)GetDlgItem(IDOK);// IDOK是按钮的ID
m_pButton->SetBitmap(HBITMAP(m_bitmap));
// 或:m_pButton->SetBitmap(HBITMAP(m_bitmap.m_hObject));
return TRUE;
}

方法2:
你用CBitmapButton来新建一个很方便的
CBitmapButton mBt;
mBt.Create(NUL,WS_CHILD|WS_VISIBLE|BS_OWNERDRAW,
CRect(leftnum,topnum,rightnum,bottomnum),this,buttonID);
mBt.LoadBitmaps(bit1,bit2,bit3);
mBt.SizeToContent();
buttonID是放在下面的隐藏起来的一个BUTTON
我是这样写的,不知道其它高手还有没有更好的方法
听说网上有一个ButtonST类,很好,不知道在哪下?

///////////////////////////////////////////////////////////////
方法3:
第一步:在资源中引入三个位图,分别命名为:"bt1"、"bt2"、"bt3";注意ID号一定要用双引号引起来。
第二步:在它被调用的对话框头文件中定义一个位图对象。如:
protected:
CBitmapButton button1;
第三步:在CDlgDlg函数中创建位图按钮。
if (!button1.LoadBitmaps(_T("IDB_BITMAP1"), _T("IDB_BITMAP2")))
{
TRACE0("Failed to load bitmaps for buttons\n");
AfxThrowResourceException();
}
第四步:在OnInit函数中建立位图按钮与窗体上按钮的对应关系。
VERIFY(button1.SubclassDlgItem(IDC_BUTTON1, this));
button1.SizeToContent();
第五步:设置窗体上的那个按的styles属性:钩选"所有者"。
2

回答2:

不用加载 弄上图片 属性修改就好了