带有位图和文本的MFC按钮

带有位图和文本的MFC按钮,mfc,cbutton,Mfc,Cbutton,我有一个自定义的CButton,它使用CButton::SetBitmap(位图)加载位图 同时,我想在位图上方的同一个按钮上显示一个文本 我尝试实现OnPaint(),但它不显示文本,只显示位图 void CBitmapToggleButton::OnPaint() { CButton::OnPaint(); CPaintDC dc(this); // device context for painting CString caption(_T("test messa

我有一个自定义的CButton,它使用CButton::SetBitmap(位图)加载位图

同时,我想在位图上方的同一个按钮上显示一个文本

我尝试实现OnPaint(),但它不显示文本,只显示位图

void CBitmapToggleButton::OnPaint()
{
    CButton::OnPaint();
    CPaintDC dc(this); // device context for painting

    CString caption(_T("test message"));
    GetWindowText(caption);
    CRect rect;
    GetWindowRect(&rect);

    dc.DrawText(caption, &rect, DT_CENTER);
}
如何也显示文本?

使用GetClientRect()。传递给DrawText()的参数必须在客户端坐标中

也就是说,忘记这一点,使用CMFCButton。这比你能在合理的时间内自己写的任何东西都要好。

试试这个

按钮*pBtn= (CButton*)GetDlgItem(ID_WIZBACK)

pBtn->ModifyStyle(0,BS_图标)

HICON hIcn=(HICON)加载映像( AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_ICON3), 图像_图标, 0,0,//使用实际大小 LR_默认颜色 );

pBtn->SetIcon( hIcn );