Кнопка MFC с растровым изображением и текстом
У меня есть Custom CButton, который загружает растровое изображение, используя CButton::SetBitmap(bitmap);
Тем временем я хочу отобразить текст над растровым изображением, на той же кнопке.
Я пытался реализовать 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);
}
Что я могу сделать, чтобы отобразить текст тоже?
2 ответа
Используйте GetClientRect(). Аргумент, передаваемый в DrawText(), должен быть в клиентских координатах.
Тем не менее, забудьте об этом и используйте CMFCButton. Это намного лучше, чем что-либо, что вы можете написать сами за разумное время.
Попробуй это
CButton * pBtn = (CButton *) GetDlgItem (ID_WIZBACK);
pBtn-> ModifyStyle (0, BS_ICON);
HICON hIcn = (HICON) LoadImage (AfxGetApp () -> m_hInstance, MAKEINTRESOURCE (IDI_ICON3), IMAGE_ICON, 0,0, // использовать фактический размер LR_DEFAULTCOLOR);
pBtn->SetIcon( hIcn );