首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

郁闷,CBitmapButton加背景图出错,搞了半天,大侠进来,该如何解决

2012-03-09 
郁闷,CBitmapButton加背景图出错,搞了半天,大侠进来我的是切分窗口,在一个基于CFormView里直接加按钮小弟

郁闷,CBitmapButton加背景图出错,搞了半天,大侠进来
我的是切分窗口,在一个基于CFormView里直接加按钮
小弟照着MSDN,又找了些资料,搞了半天没搞定,方法如下

1     在CFormView中加入     CBitmapButton   Button1
2     对话框模版按钮ID   IDC_MYIMAGE1     标题MYIMAGE1
      风格选中位图和所有者给制

3     引入资源位图 "MYIMAGE1U "

4     在CFormView里响应OnCreate(),加代码
      Button1.AutoLoad(IDC_MYIMAGE1,this);

运行后出现按钮,但是即没有标题又没有背景图

风格中只选位图去掉所有者绘制还是不行

大侠指教


[解决办法]
图按钮。

将确定的按钮的自画风格钩上,将确定按钮的标题改为OK,加四幅位图, “OKU”,”OKD”,”OKF”,”OKX”,分别对就按钮弹起来,被按下去,获得焦点,禁用情况,注意位图名有引号。

定义一个成员变量CBitmapButton bb,在OnInitDialog()加

bb.AutoLoad(IDOK,this);

有一个问题要注意,当点上自画时,默认按钮会被取消,所以你必须重新设定一个默认按钮。

将上面的一句改成:

bb.LoadBitmaps( "OKU ");//最多可以加载4幅,至少加载一幅。

bb.SubclassDlgItem(IDOK,this);//与控件建立关联。

bb.SizeToContent();//改变控件的大小来适应位图



自画按钮:

将取消按钮的自画钩上,Ctrl+w打开类向导,双击加CControlDlg的消息WM_DRAWITEM的响应函数。

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

{

if(IDCANCEL ==nIDCtl)

{

CDC *pDC = new CDC();

pDC-> Attach(lpDrawItemStruct-> hDC);

pDC-> TextOut(10,10, "haha ");

}



CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);

}

备用函数

CRect r;

GetClientRect(&r);

r存储了取消按钮的边界值。

热点排行