void CDlgDriveEconomy::OnPaint() { CPaintDC dc(this); CRect rc; GetClientRect(rc); CBitmap* pOldBmp = memDC.SelectObject(&bitmap); memDC.BitBlt(0,0, rc.Width(), rc.Height(), &bk_normal_dc, 0, 0, SRCCOPY); CString str; CRect Rect; enBtnState state; for(int i=0;i<enCtrCount;i++) { //绘制背景 str = m_Item[i].chChar; Rect = m_Item[i].rect; state = m_Item[i].nState; DrawItems(&memDC,Rect,state); DrawBtnText(&memDC,Rect,str,smallfont,RGB(255,255,255),DT_CENTER|DT_BOTTOM); } DrawBtnText(&memDC,g_retTitile,m_csTitile,bigfont,RGB(255,255,255),DT_VCENTER|DT_LEFT); BOOL b = dc.BitBlt(0, 0, rc.Width(), rc.Height(),&memDC,0,0,SRCCOPY); ASSERT(b); memDC.SelectObject(pOldBmp); }
void CDlgFailureDiagonostic::OnPaint() { CPaintDC dc(this); CRect rc; GetClientRect(rc); CBitmap* pOldBmp = memDC.SelectObject(&bitmap); memDC.BitBlt(0,0, rc.Width(), rc.Height(), &bk_normal_dc, 0, 0, SRCCOPY); CString str; CRect Rect; enBtnState state; for(int i=0;i<enCtrCount;i++) { //»æÖƱ³¾° str = m_Item[i].chChar; Rect = m_Item[i].rect; state = m_Item[i].nState; DrawItems(&memDC,Rect,state); Rect.bottom += 35; DrawBtnText(&memDC,Rect,str,CGDICommon::Instance()->smallfont(), RGB(255,255,255),DT_CENTER|DT_BOTTOM); } DrawBtnText(&memDC,g_retTitile,m_csTitile,CGDICommon::Instance()->bigbigfont(), RGB(255,255,255),DT_VCENTER|DT_CENTER); BOOL b = dc.BitBlt(0, 0, rc.Width(), rc.Height(),&memDC,0,0,SRCCOPY); ASSERT(b); memDC.SelectObject(pOldBmp); }
void CPhoneBook::OnPaint() { CPaintDC dc(this); CRect rc; GetClientRect(rc); CBitmap* pOldBmp = memDC.SelectObject(&bitmap); memDC.BitBlt(0,0, rc.Width(), rc.Height(), &bk_normal_dc, 0, 0, SRCCOPY); CString str; CRect Rect; enBtnState state; for(int i=0;i<11;i++) { //绘制背景 str = m_Item[i].chChar; Rect = m_Item[i].rect; state = m_Item[i].nState; } CRect temprect; int j=0; for(j=0; j<5; j++) { temprect.top = m_Item[j].rect.top + 5; temprect.left = m_Item[j].rect.left + 15; temprect.right = m_Item[j].rect.right; temprect.bottom = m_Item[j].rect.bottom; DrawBtnText(&memDC,temprect,ItemStrName[j],midfont,RGB(255,255,255),DT_LEFT | DT_VCENTER); temprect.top = m_Item[j].rect.top + 5; temprect.left = m_Item[j].rect.left + 215; temprect.right = m_Item[j].rect.right -15; temprect.bottom = m_Item[j].rect.bottom; DrawBtnText(&memDC,temprect,ItemStrNum[j],midfont,RGB(255,255,255),DT_RIGHT | DT_VCENTER); } for( j=6; j<10; j++ ) { temprect = m_Item[j].rect; DrawBtnText(&memDC,temprect,m_Item[j].chChar,smallfont,RGB(255,255,255),DT_CENTER | DT_VCENTER); } DrawBtnText(&memDC,g_retTitile,m_stTitle,bigfont,RGB(255,255,255),DT_LEFT | DT_VCENTER); BOOL b = dc.BitBlt(0, 0, rc.Width(), rc.Height(),&memDC,0,0,SRCCOPY); ASSERT(b); memDC.SelectObject(pOldBmp); // Do not call CDialogBase::OnPaint() for painting messages }
void CBrightnessSetDlg::OnPaint() { CPaintDC dc(this); CRect rc; GetClientRect(rc); CBitmap* pOldBmp = memDC.SelectObject(&bitmap); memDC.BitBlt(0,0, rc.Width(), rc.Height(), &bk_normal_dc, 0, 0, SRCCOPY); CString str; CRect Rect; enBtnState state; for(int i=0;i<7;i++) { //绘制背景 str = m_Item[i].chChar; Rect = m_Item[i].rect; state = m_Item[i].nState; DrawItems(&memDC,Rect,state); // Rect.top = Rect.top + 54; // DrawBtnText(&memDC,Rect,str,RGB(255,125,0)); } str = m_Item[1].chChar; Rect = m_Item[1].rect; state = BTN_STATE_DISABLE; if( CSysConfig::Instance().GetLanguage() != ID_CHINESE && CSysConfig::Instance().GetLanguage() != ID_ENGLISH ) DrawBtnText(&memDC,Rect,str,CGDICommon::Instance()->bigbigfont(), RGB(255,255,255), DT_CENTER | DT_VCENTER); else DrawBtnText(&memDC,Rect,str,CGDICommon::Instance()->bigbigfont(), RGB(255,255,255), DT_CENTER | DT_VCENTER); str = m_Item[4].chChar; Rect = m_Item[4].rect; state = BTN_STATE_DISABLE; if( CSysConfig::Instance().GetLanguage() != ID_CHINESE && CSysConfig::Instance().GetLanguage() != ID_ENGLISH ) DrawBtnText(&memDC,Rect,str,CGDICommon::Instance()->bigbigfont(), RGB(255,255,255), DT_CENTER | DT_VCENTER); else DrawBtnText(&memDC,Rect,str,CGDICommon::Instance()->bigbigfont(), RGB(255,255,255), DT_CENTER | DT_VCENTER); DrawBtnText(&memDC,g_retTitile,m_csTitile,CGDICommon::Instance()->bigbigfont(), RGB(255,255,255),DT_VCENTER|DT_CENTER); BOOL b = dc.BitBlt(0, 0, rc.Width(), rc.Height(),&memDC,0,0,SRCCOPY); ASSERT(b); memDC.SelectObject(pOldBmp); }
void CDlgConfirm2::OnPaint() { CPaintDC dc(this); CRect rc; GetClientRect(rc); CBitmap* pOldBmp = memDC.SelectObject(&bitmap); memDC.BitBlt(0,0, rc.Width(), rc.Height(), &bk_normal_dc, 0, 0, SRCCOPY); CString str; CRect Rect; enBtnState state; //绘制背景 for(int i=0;i<3;i++) { Rect = m_Item[i].rect; state = m_Item[i].nState; DrawItems(&memDC,Rect,state); } DrawBtnText(&memDC,CRect(0,80,494,274),m_stTitle,CGDICommon::Instance()->bigbigfont(), RGB(255,255,255),DT_CENTER|DT_WORDBREAK); BOOL b = dc.BitBlt(0, 0, rc.Width(), rc.Height(),&memDC,0,0,SRCCOPY); ASSERT(b); memDC.SelectObject(pOldBmp); }
void CDlgAnswerList::OnPaint() { CPaintDC dc(this); CRect rc; GetClientRect(rc); CBitmap* pOldBmp = memDC.SelectObject(&bitmap); memDC.BitBlt(0,0, rc.Width(), rc.Height(), &bk_normal_dc, 0, 0, SRCCOPY); CString str; CRect Rect; enBtnState state; int i; for(i=0;i<BTN_COUNT;i++) { //绘制背景 str = m_Item[i].chChar; Rect = m_Item[i].rect; state = m_Item[i].nState; DrawItems(&memDC,Rect,state); } //绘制列表 DrawList(&memDC); DrawBtnText(&memDC,g_retTitile,m_csTitile,CGDICommon::Instance()->bigbigfont(), RGB(255,255,255),DT_VCENTER|DT_CENTER); BOOL b = dc.BitBlt(0, 0, rc.Width(), rc.Height(),&memDC,0,0,SRCCOPY); ASSERT(b); memDC.SelectObject(pOldBmp); }
////////////////////////////////////////////////////////////////////////// // 绘制(注意一定要用的是虚函数那个DrawItem哦~) void CAnimateButton::DrawItem(LPDRAWITEMSTRUCT lpDIS) { // TODO: Add your code to draw the specified item CDC* pDC = CDC::FromHandle(lpDIS->hDC); pDC->SetBkMode(TRANSPARENT); CRect rcItem = lpDIS->rcItem; int nState = lpDIS->itemState; int nAction = lpDIS->itemAction; if(m_aniBtnState == STATE_DISABLED) { //要注意当缺少Focused的状态时,要判断好Disabled状态在图片的位置 ::TransparentBlt(pDC->m_hDC, 0, 0, m_aniBtnWidth, m_aniBtnHeight, m_pMemDC->m_hDC, m_aniBtnWidth * 3, 0, m_aniBtnWidth, m_aniBtnHeight, m_clrTrans); } else if(m_aniBtnState != STATE_HOVERED) //正常状态 { ::TransparentBlt(pDC->m_hDC, 0, 0, m_aniBtnWidth, m_aniBtnHeight, m_pMemDC->m_hDC, 0, 0, m_aniBtnWidth, m_aniBtnHeight, m_clrTrans); } //绘制文字(仅在图像外面时) if(!m_strBtnText.IsEmpty() && m_ato.nPosition != TXTPOS_IN) DrawBtnText(pDC); ReleaseDC(pDC); }
void CDlgComSetting::OnPaint() { CPaintDC dc(this); CRect rc; GetClientRect(rc); CBitmap* pOldBmp = memDC.SelectObject(&bitmap); memDC.BitBlt(0,0, rc.Width(), rc.Height(), &bk_normal_dc, 0, 0, SRCCOPY); CString str; CRect Rect; enBtnState state; for(int i=0;i<BTN_COUNT;i++) { //绘制背景 str = m_Item[i].chChar; Rect = m_Item[i].rect; state = m_Item[i].nState; DrawItems(&memDC,Rect,state); DrawBtnText(&memDC,Rect,str,CGDICommon::Instance()->bigfont(), RGB(255,255,255),DT_VCENTER|DT_CENTER); } str = _T("IC卡串口:"); Rect = m_Item[0].rect; Rect.left = 40; DrawBtnText(&memDC,Rect,str,CGDICommon::Instance()->bigfont(), RGB(255,255,255),DT_VCENTER|DT_LEFT); str = _T("条形码扫描串口:"); Rect = m_Item[3].rect; Rect.left = 40; DrawBtnText(&memDC,Rect,str,CGDICommon::Instance()->bigfont(), RGB(255,255,255),DT_VCENTER|DT_LEFT); str = _T("RFID串口:"); Rect = m_Item[6].rect; Rect.left = 40; DrawBtnText(&memDC,Rect,str,CGDICommon::Instance()->bigfont(), RGB(255,255,255),DT_VCENTER|DT_LEFT); DrawBtnText(&memDC,g_retTitile,m_csTitile,CGDICommon::Instance()->bigbigfont(), RGB(255,255,255),DT_VCENTER|DT_CENTER); BOOL b = dc.BitBlt(0, 0, rc.Width(), rc.Height(),&memDC,0,0,SRCCOPY); ASSERT(b); memDC.SelectObject(pOldBmp); }
void CPhoneLog::OnPaint() { CPaintDC dc(this); CRect rc; GetClientRect(rc); CBitmap* pOldBmp = memDC.SelectObject(&bitmap); memDC.BitBlt(0,0, rc.Width(), rc.Height(), &bk_normal_dc, 0, 0, SRCCOPY); CString str; CRect Rect; enBtnState state; for(int i=0;i<12;i++) { //绘制背景 str = m_Item[i].chChar; Rect = m_Item[i].rect; state = m_Item[i].nState; DrawItems(&memDC,Rect,state); } CRect temprect; for(int j=0; j<5; j++) { temprect = m_Item[j].rect; temprect.left += 20; DrawBtnText(&memDC,temprect,ItemStr[j],CGDICommon::Instance()->smallfont(), RGB(255,255,255),DT_LEFT | DT_VCENTER); temprect.left += 265; DrawBtnText(&memDC,temprect,m_strTime[j],CGDICommon::Instance()->smallfont(), RGB(255,255,255),DT_LEFT | DT_VCENTER); } DrawBtnText(&memDC,g_retTitile,m_stTitle,CGDICommon::Instance()->bigbigfont(), RGB(255,255,255),DT_CENTER | DT_VCENTER); BOOL b = dc.BitBlt(0, 0, rc.Width(), rc.Height(),&memDC,0,0,SRCCOPY); ASSERT(b); memDC.SelectObject(pOldBmp); }
void CBfDrawButton::DrawButton(Color OutR, Color UpBegin, Color UpEnd, Color DownBegin, Color DownEnd, Color BRColor, Color SRColor, COLORREF PtColor) { CRect WndRect = m_WndRect; // 填充背景色 SolidBrush FillBrush(Color(255, 255, 255)); m_pDoGrap->FillRectangle(&FillBrush, WndRect.left, WndRect.top, WndRect.Width(), WndRect.Height()); // 按钮外圈 Pen OutLine(OutR); CRect OutRect(WndRect); OutRect.right--; OutRect.bottom--; RectF GRt = CUiMethod::CRect2RectF(OutRect); m_pDoGrap->DrawRectangle(&OutLine, GRt); // 上半部分高光 CRect UpHRect(WndRect); UpHRect.left += 2; UpHRect.top += 2; UpHRect.right -= 2; UpHRect.bottom = (WndRect.Height() / 2) + WndRect.top; Point Pt1 = Point(UpHRect.left, UpHRect.top - 1), Pt2 = Point(UpHRect.left, UpHRect.bottom); LinearGradientBrush lgBrush1(Pt1, Pt2, UpBegin, UpEnd); m_pDoGrap->FillRectangle(&lgBrush1, UpHRect.left, UpHRect.top, UpHRect.Width(), UpHRect.Height()); // 下半部分高光 CRect DownHRect(WndRect); DownHRect.top = UpHRect.bottom; DownHRect.left += 2; DownHRect.right -= 2; DownHRect.bottom -= 2; Pt1 = Point(DownHRect.left, DownHRect.top - 1); Pt2 = Point(DownHRect.left, DownHRect.bottom); LinearGradientBrush lgBrush2(Pt1, Pt2, DownBegin, DownEnd); m_pDoGrap->FillRectangle(&lgBrush2, DownHRect.left, DownHRect.top, DownHRect.Width(), DownHRect.Height()); // 四角高光 Draw4Corner(BRColor, SRColor, PtColor); // 画焦点 DrawFocus(); // 文字 DrawBtnText(); }
void CDlgAnswerList::DrawList(CDC* pmemDC) { /* CString str; //计算最大页数 int nMaxPage; if ( g_pSMSCenter->GetRecordCount() > 0 ) nMaxPage = ( g_pSMSCenter->GetRecordCount() - 1 ) / elist_count + 1; else nMaxPage = 1; if ( m_nCurPage > nMaxPage ) return; int nStartIdx = ( m_nCurPage - 1 ) * elist_count; for( int i = 0; i < elist_count; i++ ) { if ( nStartIdx+i >= g_pSMSCenter->GetRecordCount() ) break; st_SMSCenter* pSMS = g_pSMSCenter->GetRecord( nStartIdx + i ); if ( pSMS ) { DrawItems( pmemDC, m_list[i].rect, m_list[i].nState); //内容 str = pSMS->m_Text.m_infoContext; str = " " + str; DrawBtnText( pmemDC, m_list[i].rect, str, CGDICommon::Instance()->smallfont(), RGB(255,255,255),DT_VCENTER|DT_LEFT); } }*/ int i = 0; CString str; for( i = 0; i < elist_count; i++ ) { str = _T(" ") + m_list[i].chChar; DrawBtnText( pmemDC, m_list[i].rect, str, CGDICommon::Instance()->smallfont(), RGB(255,255,255),DT_VCENTER|DT_LEFT); } }
void CAnimateButton::SetBtnText(LPCTSTR lpszString, AnibtnTextOpinion ato) { m_strBtnText = lpszString; m_ato = ato; // if(m_pLogfont) // delete m_pLogfont; // // m_pLogfont = new LOGFONT; // m_ato.pFont->GetLogFont(m_pLogfont); // TRACE("m_ato: font-size: %d\n", m_pLogfont->lfHeight); // // if(m_pFontTxt) // delete m_pFontTxt; // m_pFontTxt = new CFont; // m_pFontTxt->CreatePointFontIndirect(m_pLogfont); //用错函数了 // m_ato.pFont = m_pFontTxt; //字体 - 写到前面便于后面计算下方、右方文字框大小 if(m_fontTxt.GetSafeHandle()) m_fontTxt.DeleteObject(); if(ato.pLf) m_fontTxt.CreateFontIndirect(ato.pLf); else { LOGFONT lf; m_pMemDC->GetCurrentFont()->GetLogFont(&lf); lf.lfCharSet = DEFAULT_CHARSET; lf.lfHeight = 0; lf.lfWidth = 0; strcpy(lf.lfFaceName,"微软雅黑"); m_fontTxt.CreateFontIndirect(&lf); }// if ato.pFont if(m_ato.nPosition == TXTPOS_IN) DrawBtnText(m_pMemDC); else { m_pMemDC->SelectObject(m_fontTxt); //通过当前字体来计算字在按钮外面时,按钮区域(图像与文字)、按钮大小 CRgn RgnWnd, RgnText; RgnWnd.CreateRectRgn(0, 0, m_aniBtnWidth, m_aniBtnHeight); TEXTMETRIC tm; m_pMemDC->GetTextMetrics(&tm); BOOL bIsUnderline = FALSE; if(ato.pLf) bIsUnderline = ato.pLf->lfUnderline; int nLength = m_strBtnText.GetLength(); int nBoxWidth = (int)tm.tmAveCharWidth * nLength + 2, nBoxHeight = (int)tm.tmHeight + (bIsUnderline ? 10 : 1); int nLeft, nTop; switch(ato.nPosition) { case TXTPOS_DOWN: nLeft = (m_aniBtnWidth - nBoxWidth) / 2; nTop = m_aniBtnHeight + ato.nDistance; //调整按钮大小 SetWindowPos(NULL, 0, 0, m_aniBtnWidth, m_aniBtnHeight + m_ato.nDistance + nBoxHeight, SWP_NOMOVE); break; case TXTPOS_RIGHT: nLeft = m_aniBtnWidth + m_ato.nDistance; nTop = (m_aniBtnHeight - nBoxHeight) / 2; //调整按钮大小 SetWindowPos(NULL, 0, 0, m_aniBtnWidth + m_ato.nDistance + nBoxWidth, m_aniBtnHeight, SWP_NOMOVE); break; }// switch m_rcTextBox.SetRect(nLeft, nTop, nLeft + nBoxWidth, nTop + nBoxHeight); RgnText.CreateRectRgnIndirect(&m_rcTextBox); RgnWnd.CombineRgn(&RgnWnd, &RgnText, RGN_OR); SetWindowRgn(HRGN(RgnWnd), FALSE); } }