admin
8 天以前 6cd92a169cbc0db35042f243a09d976fd3e1445c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "common/pch.h"
#include "MyButton.h"
 
 
void MyButton::setTextSize(int wordsize)
{
    nWordSize = wordsize;
}
void MyButton::setTextColor(COLORREF wordColor = RGB(255, 255, 255))
{
    m_TextColor = wordColor;
}
 
// ÎÄ×Ö´¦Àí
void MyButton::setText(CRect rect, CDC* pDc, int nWordSize)
{
    CString str;
    GetWindowText(str);//»ñÈ¡ÎÄ×Ö
    CFont font;
    font.CreatePointFont(nWordSize, L"΢ÈíÑźÚ");//ÉèÖÿؼþÎÄ×Ö´óСÓë×ÖÌå
    pDc->SelectObject(&font);
    pDc->SetTextColor(m_TextColor);//ÉèÖÃÎÄ×ÖÑÕÉ«
    // dc.SetBkColor(RGB(255, 0, 0));//ÉèÖÃÎÄ×Ö±³¾°ÑÕÉ«
    pDc->SetBkMode(TRANSPARENT);//ÉèÖÃÎÄ×Ö±³¾°Í¸Ã÷
    pDc->DrawText(str, rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_TABSTOP);//»æÖÆÎÄ×Ö
}
void MyButton::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
    // TODO:  Ìí¼ÓÄúµÄ´úÂëÒÔ»æÖÆÖ¸¶¨Ïî
    CDC dc;
    dc.Attach(lpDIS->hDC);//µÃµ½»æÖƵÄÉ豸»·¾³CDC
    //°´Å¥Íâ¿ò´¦Àí
    {
        dc.SelectStockObject(NULL_BRUSH);//Ñ¡Ôñ°´Å¥Ä¬ÈÏÉ«
        dc.Rectangle(&lpDIS->rcItem);//»­³ö°´Å¥¿ò
    }
    CString str;
    CRect rect = lpDIS->rcItem;
    GetClientRect(&rect);//µÃµ½¿Í»§¶Ë×ø±ê //ScreenToClient();½«ÆÁÄ»×ø±êת»»Îª¿Í»§¶Ë×ø±ê
 
    //ÎÄ×Ö´¦Àí£¨»æÖÆÎÄ×Ö£©
    setText(rect, &dc, nWordSize);
    dc.Detach();
}