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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#include "T2BitImage.h"
#include "T2DlgItemRadioText.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/*virtual*/ BOOL T2DlgItemRadioText::Create(const char *inWindowName, DWORD inStyle, const RECT &inRect, CWnd *inParentWnd, UINT inID) {
CRect rect = inRect;
CRect imageRect;
strcpy(mText, inWindowName);
GetObjectImage(imageRect, "DLGITEM:TxRadio");
return T2DlgItem::Create("DLGITEM:TxRadio", inStyle, rect, inParentWnd, inID);
}
T2DlgItemRadioText::T2DlgItemRadioText(T2TowerDoc *inDoc, T2ImageObj *inImageObj, CPalette *inPalette)
: T2DlgItemICheck(inDoc, inImageObj, inPalette)
{
mText[0] = 0;
}
/*virtual*/ T2DlgItemRadioText::~T2DlgItemRadioText() {
}
/*virtual*/ BOOL T2DlgItemRadioText::OnT2DlgItemEraseBkgnd(CDC *pDC) {
CRect drawRect;
GetClientRect(drawRect);
int saved = pDC->SaveDC();
pDC->SelectPalette(mPalette, false);
pDC->RealizePalette();
RECT imageRect;
T2BitImage *theImage = GetObjectImage(imageRect, "DLGITEM:TxRadio", GetPattern());
drawRect.right = (drawRect.left + imageRect.right) - imageRect.left;
drawRect.bottom = (drawRect.top + imageRect.bottom) - imageRect.top;
theImage->CopyImage(pDC, imageRect, drawRect);
GetClientRect(drawRect);
drawRect.left += (drawRect.bottom - drawRect.top);
char config = mText[0];
const char *text = &mText[1];
DWORD theFormat = DT_WORDBREAK | DT_NOPREFIX;
if (isupper(config)) {
theFormat |= DT_VCENTER | DT_SINGLELINE;
config = tolower(config);
}
switch (config) {
case 'c':
theFormat |= DT_CENTER;
break;
case 'l':
theFormat |= DT_LEFT;
break;
case 'r':
theFormat |= DT_RIGHT;
break;
}
pDC->SetBkMode(TRANSPARENT);
pDC->DrawText(text, drawRect, theFormat);
pDC->RestoreDC(saved);
return true;
}
/*virtual*/ void T2DlgItemRadioText::OnT2DlgItemLButtonDown(UINT inFlags, CPoint inPt) {
if (!GetValue())
T2DlgItemICheck::OnT2DlgItemLButtonDown(inFlags, inPt);
}
|