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

菜鸟一只,求高手详细回答(配图),最为详细者采纳。试了一下,没办法加载位图,按钮已经实现~... 菜鸟一只,求高手详细回答(配图),最为详细者采纳。
试了一下,没办法加载位图,按钮已经实现~
展开
 我来答
zcy990718
2012-11-03 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:66%
帮助的人:1538万
展开全部
先装入一副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
更多追问追答
追问
请问一下,我还是没找到WM_INITDIALOG消息处理函数。。。
追答
在Class Wizard中,有消息映射,可以直接建立
百度网友96aa8d3
2012-11-03 · TA获得超过433个赞
知道小有建树答主
回答量:2306
采纳率:75%
帮助的人:952万
展开全部
不用加载 弄上图片 属性修改就好了
追问
可否说的细点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式