郁闷,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存储了取消按钮的边界值。