void CSplashScreen::DrawText(CDC *pDC) { LOGFONT lf = {0}; CFont font; CFont* pOldFont; CTextDC textDC(pDC->GetSafeHdc(), RGB(255, 255, 255)); CString strVer; strVer.Format(_T("V%u.%u.%u"), CGlobalVariable::m_nEasyMuleMjr, CGlobalVariable::m_nEasyMuleMin, CGlobalVariable::m_nEasyMuleUpd); lf.lfHeight = 18; lf.lfWeight = FW_BOLD; lf.lfQuality = ANTIALIASED_QUALITY; _tcscpy(lf.lfFaceName, _T("Arial")); font.CreateFontIndirect(&lf); pOldFont = pDC->SelectObject(&font); pDC->DrawText(strVer, &m_rtVersion, DT_CENTER | DT_NOPREFIX); pDC->SelectObject(pOldFont); font.DeleteObject(); lf.lfHeight = 12; lf.lfWeight = FW_NORMAL; lf.lfQuality = ANTIALIASED_QUALITY; _tcscpy(lf.lfFaceName, _T("Arial")); font.CreateFontIndirect(&lf); pOldFont = pDC->SelectObject(&font); pDC->DrawText(_T("Copyright (C) 2002-2010 VeryCD"), &m_rtText, DT_CENTER | DT_NOPREFIX); pDC->SelectObject(pOldFont); font.DeleteObject(); }
int CHistoryWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CCJControlBar::OnCreate(lpCreateStruct) == -1) return -1; // create the bidding history panel RECT rect = { 0, 0, 0, 0 }; if (!m_editBidding.Create(ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | WS_CHILD | WS_VSCROLL | WS_HSCROLL | WS_VISIBLE, rect, this, IDC_EDIT1)) return -1; m_editBidding.ModifyStyleEx(0, WS_EX_CLIENTEDGE); // and the play history panel if (!m_editPlay.Create(ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | WS_CHILD | WS_VSCROLL | WS_HSCROLL | WS_VISIBLE, rect, this, IDC_EDIT2)) return -1; m_editPlay.ModifyStyleEx(0, WS_EX_CLIENTEDGE); // subclass the edit controls wpOrigRichEditProc = (WNDPROC) SetWindowLong(m_editBidding.m_hWnd, GWL_WNDPROC, (LONG) RichEditSubclassProc); SetWindowLong(m_editPlay.m_hWnd, GWL_WNDPROC, (LONG) RichEditSubclassProc); // set font CFont* pFont = (CFont*) pMAINFRAME->GetValuePV(tpFontHistory); m_editBidding.SendMessage(WM_SETFONT, (LONG)pFont->m_hObject, FALSE); m_editPlay.SendMessage(WM_SETFONT, (LONG)pFont->m_hObject, FALSE); // get text metrics CWindowDC textDC(&m_editBidding); TEXTMETRIC tm; textDC.GetTextMetrics(&tm); m_nFontHeight = tm.tmHeight; // create static labels // first adjust rect then create CWindowDC dc(this); pFont = (CFont*) pMAINFRAME->GetValuePV(tpFontSmall); CFont* pOldFont = (CFont*) dc.SelectObject(pFont); CString strLabel = _T("Bidding History"); CSize size = dc.GetTextExtent(strLabel, strLabel.GetLength()); rect.right = size.cx; rect.bottom = size.cy; m_lblBidding.Create(strLabel, WS_CHILD | WS_VISIBLE, rect, this, IDC_STATIC1); // adjust rect again and create strLabel = _T("Play History"); size = dc.GetTextExtent(strLabel, strLabel.GetLength()); rect.right = size.cx; m_lblPlay.Create(strLabel, WS_CHILD | WS_VISIBLE, rect, this, IDC_STATIC2); // create the buttons m_btnBidding.Create(_T("Bidding"), WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE, rect, this, IDC_CHECK1); m_btnPlay.Create(_T("Play"), WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE, rect, this, IDC_CHECK2); // set check state m_btnBidding.SetCheck(m_bShowBidding); m_btnPlay.SetCheck(m_bShowPlay); // and set fonts m_btnBidding.SendMessage(WM_SETFONT, (UINT)GetStockObject(ANSI_VAR_FONT), 0L); m_btnPlay.SendMessage(WM_SETFONT, (UINT)GetStockObject(ANSI_VAR_FONT), 0L); // restore old font dc.SelectObject(pOldFont); // set fonts m_lblBidding.SendMessage(WM_SETFONT, (LONG)pFont->m_hObject, FALSE); m_lblPlay.SendMessage(WM_SETFONT, (LONG)pFont->m_hObject, FALSE); // create the popup menu m_menuPopup.LoadMenu(IDR_HISTORY_POPUP); // done m_bInitialized = TRUE; return 0; }
void CToolBarCtrlZ::DrawItem(CDC *pDC, int iIndex, const CRect &rtItem, BOOL bHover) { UINT uItemId; UINT uItemState; TBBUTTON tbb; TCHAR szText[1024]; TBBUTTONINFO tbi; CArray<CxImage*, CxImage*> *parrImgs = NULL; CxImage *pIconImg = NULL; int iIconTop; CRect rtDraw; CRect rtText; COLORREF clrText; CClientRect rtClient(this); rtDraw = rtItem; rtDraw.top = rtClient.top; rtDraw.bottom = rtClient.bottom; if (!GetButton(iIndex, &tbb)) return; uItemId = tbb.idCommand; uItemState = GetState(uItemId); parrImgs = &m_arrImgs; if ( !IsButtonEnabled(uItemId) ) { clrText = RGB(204, 128, 128); if (0 != m_arrDisableImgs.GetCount()) parrImgs = &m_arrDisableImgs; } else { clrText = RGB(255, 254, 253); if (TBSTATE_PRESSED & uItemState/*IsButtonPressed(uItemId)*/) rtDraw.OffsetRect(1, 1); else if (bHover/*iIndex == GetHotItem()*/) rtDraw.OffsetRect(-1, -2); } ZeroMemory(&tbi, sizeof(TBBUTTONINFO)); tbi.cbSize = sizeof(TBBUTTONINFO); tbi.dwMask = TBIF_TEXT | TBIF_IMAGE; tbi.pszText = szText; tbi.cchText = 1024; //if (GetButtonInfo(p->nmcd.dwItemSpec, &tbi)) GetButtonInfo(uItemId, &tbi); { rtText = rtDraw; if (tbi.iImage < parrImgs->GetCount()) { pIconImg = parrImgs->GetAt(tbi.iImage); if (NULL != pIconImg) { iIconTop = rtDraw.Height() - pIconImg->GetHeight(); iIconTop /= 2; iIconTop += rtDraw.top; pIconImg->Draw(pDC->GetSafeHdc(), rtDraw.left, iIconTop); rtText.left += pIconImg->GetWidth() + 4; } } { CWndFontDC fontDC(pDC->GetSafeHdc(), GetSafeHwnd()); CTextDC textDC(pDC->GetSafeHdc(), clrText); pDC->DrawText(tbi.pszText, -1, &rtText, DT_LEFT | DT_VCENTER | DT_SINGLELINE); } } }