#include "StdAfx.h" #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); }