2010-02-19 3 views
1

J'ai un CButton personnalisé qui charge un bitmap, en utilisant CButton :: SetBitmap (bitmap);Bouton MFC avec Bitmap et texte

En attendant, je souhaite afficher un texte au-dessus de l'image bitmap, sur le même bouton.

J'ai essayé la mise en œuvre OnPaint(), mais il n'affiche le texte, juste le bitmap

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); 
} 

Que puis-je faire pour afficher le texte aussi?

Répondre

3

Utilisez GetClientRect(). L'argument passé à DrawText() doit être dans les coordonnées du client. Cela dit, oubliez cela et utilisez CMFCButton. C'est bien mieux que tout ce que vous pouvez écrire vous-même dans un délai raisonnable.

0

Essayez cette

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, // utiliser la taille réelle LR_DEFAULTCOLOR);

pBtn->SetIcon(hIcn);