1

CButton::SetBitmap(bitmap); を使用して、ビットマップをロードするカスタム CButton があります。

その間、同じボタンのビットマップの上にテキストを表示したいと思います。

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

テキストも表示するにはどうすればよいですか?

4

2 に答える 2

3

GetClientRect() を使用します。DrawText() に渡される引数は、クライアント座標である必要があります。

とはいえ、これは忘れて CMFCButton を使用してください。妥当な時間内に自分で書くことができる何よりも優れています。

于 2010-02-19T11:47:23.773 に答える
0

これを試して

CButton * pBtn =(CButton *)GetDlgItem(ID_WIZBACK);

pBtn-> ModifiedStyle(0、BS_ICON);

HICON hIcn =(HICON)LoadImage(AfxGetApp()-> m_hInstance、MAKEINTRESOURCE(IDI_ICON3)、IMAGE_ICON、0,0、//実際のサイズを使用LR_DEFAULTCOLOR);

pBtn->SetIcon( hIcn );
于 2010-03-01T08:27:50.637 に答える