BOOL CPictureWnd::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default CRect rt; GetClientRect(&rt); CBrush br; br.CreateSolidBrush(PICTURE_BACK_COLOR); pDC->FillRect(&rt,&br); return TRUE; // return CWnd::OnEraseBkgnd(pDC); }
BOOL CGuiDockToolBarEx::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default CBrush cbr; cbr.CreateSolidBrush(GuiDrawLayer::GetRGBColorFace(GuiDrawLayer::m_Style)); CRect m_rect; GetClientRect(m_rect); pDC->FillRect(m_rect,&cbr); return TRUE; }
BOOL CScreenPannel::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default CRect rt; GetClientRect(&rt); CBrush br; br.CreateSolidBrush(RGB(192,192,192)); pDC->FillRect(&rt,&br); return TRUE; return CWnd::OnEraseBkgnd(pDC); }
void CHpsCtrl::DrawBkgd() { CClientDC dc(this); CBrush brBkgd; int nOriginX = m_rcWindow.left + ORG_OFFSET; int nOriginY = m_rcWindow.bottom - ORG_OFFSET; brBkgd.CreateSolidBrush(m_clrBkgd); dc.FillRect(&m_rcWindow, &brBkgd); dc.Draw3dRect(&m_rcWindow, RGB(0x62, 0x6c, 0x68), RGB(0x62, 0x6c, 0x68)); DrawCoordinate(&dc, nOriginX, nOriginY); }
void CTestMFCDlg::OnPaint() { /* if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } */ CPaintDC dc(this); CRect rect; CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP3); BITMAP bmpinfo; bmp.GetBitmap(&bmpinfo); CDC cdc; cdc.CreateCompatibleDC(&dc); cdc.SelectObject(bmp); CBrush brush; brush.CreatePatternBrush(&bmp); //GetClientRect(rect); GetClientRect(rect); dc.StretchBlt(0,0,rect.right,rect.bottom,&cdc,0,0,bmpinfo.bmWidth,bmpinfo.bmHeight,SRCCOPY); //dc.FillRect(CRect(0,0,rect.right/2,rect.bottom/2),&brush); //dc.FillSolidRect(0,0,rect.right/2,rect.bottom/2,RGB(0,0,255)); //dc.FillSolidRect(CRect(0,0,rect.right/2,rect.bottom/2),RGB(0,0,255)); //CDialog::OnPaint(); /* CDialog::OnInitDialog(); CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); CBrush brush; brush.CreatePatternBrush(&bmp); bmp.DeleteObject(); */ }
BOOL CPlayWnd::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default CWnd::OnEraseBkgnd(pDC); CRect rect; GetClientRect(&rect); CBrush brush; brush.CreateSolidBrush(VIDEO_BACK_COLOR); pDC->FillRect(&rect, &brush); return TRUE; }
void IW::CRender::Play(HENHMETAFILE hemf) { IW::CDCRender dc(*this); bool bHasPal = dc.GetDeviceCaps(BITSPIXEL) <= 8; // Create a logical palette from the colors in the color table UINT nColors = GetEnhMetaFilePaletteEntries(hemf, 0, NULL); CPalette pal; if (bHasPal && nColors != GDI_ERROR && nColors != 0) { bHasPal = false; DWORD dwSize = sizeof (LOGPALETTE) + ((nColors - 1) * sizeof (PALETTEENTRY)); LPLOGPALETTE logPalette = IW_ALLOCA(LPLOGPALETTE, dwSize); logPalette->palVersion = 0x300; logPalette->palNumEntries = nColors; if (nColors == GetEnhMetaFilePaletteEntries(hemf, nColors, logPalette->palPalEntry)) { pal.CreatePalette(logPalette); } } HPALETTE hOldPal = NULL; if (bHasPal) { hOldPal = dc.SelectPalette(pal, TRUE); dc.RealizePalette(); } CRect rcClip = _pSurface->GetClipRect(); int nHeightRender = rcClip.bottom - rcClip.top; int nWidthRender = rcClip.right - rcClip.left; CBrush brush; CRect r(0, 0, nWidthRender, nHeightRender); if (brush.CreateSolidBrush(RGB(255,255,255))) { dc.FillRect(&r, brush); } PlayEnhMetaFile(dc, hemf, &r); ::GdiFlush(); if (hOldPal) dc.SelectPalette(hOldPal, FALSE); }
void COXTabViewContainer::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here CWnd* pWnd=GetActivePage(); if(pWnd!=NULL) { CRect rect; pWnd->GetWindowRect(rect); ScreenToClient(rect); if(m_rectPage!=rect && !rect.IsRectEmpty()) { CRgn rgnInTheory; CRgn rgnInReality; if(rgnInTheory.CreateRectRgnIndirect(m_rectPage) && rgnInReality.CreateRectRgnIndirect(rect)) { if(rgnInTheory.CombineRgn(&rgnInTheory,&rgnInReality, RGN_DIFF)!=ERROR) { CBrush* pBrush=NULL; CBrush brush; HBRUSH hBrush=(HBRUSH)(INT_PTR)::GetClassLongPtr(pWnd->m_hWnd, GCL_HBRBACKGROUND); if(hBrush==NULL) { if(brush.CreateSolidBrush(::GetSysColor(COLOR_WINDOW))) pBrush=&brush; else pBrush=dc.GetCurrentBrush(); } else { pBrush=CBrush::FromHandle(hBrush); } if(pBrush!=NULL) dc.FillRgn(&rgnInTheory,pBrush); } } } } DrawScrollButtons(&dc); DrawSplitter(&dc); DrawSizeBar(&dc); DrawTabBtnArea(&dc); // Do not call CWnd::OnPaint() for painting messages }
BOOL COscillogram::OnEraseBkgnd(CDC* pDC) { CRect rc; CBrush brush; brush.CreateSolidBrush(m_bkColor); GetClientRect(&rc); pDC->FillRect(&rc, &brush); return TRUE; //return CWnd::OnEraseBkgnd(pDC); }
void CShape::DrawTriggers(CDC* pcDC) { CBrush cBrush; cBrush.CreateSolidBrush(m_clrFrame); CBrush* pOldBrush = (CBrush*)pcDC->SelectObject(&cBrush); CRect* pArrTrigers = GetTriggers(); int nLen = TRIGGER_COUNT; for (int i = 0; i < nLen; i++) pcDC->Rectangle(pArrTrigers[i]); pcDC->SelectObject(pOldBrush); }
void CMyBalloon::OnPaint() { CPaintDC dc(this); CRgn rgn; rgn.CreateRectRgn (0,0,0,0); GetWindowRgn (rgn); CBrush brWnd; brWnd.CreateSolidBrush (m_pContent->getBkColor ()); CBrush br1; br1.CreateSolidBrush (m_pContent->getTextColor ()); dc.FillRgn (&rgn, &brWnd); dc.FrameRgn (&rgn, &br1, 1, 1); }
void CMenuSkin::DrawMenuNonClient(CDCHandle dc, const RECT &rect) { CMemoryDC dcBuf(dc, rect); CPen pen; pen.CreatePen(PS_SOLID, 1, CSkinProperty::GetColor(Skin_Property_Menu_Border_Color)); CBrush brush; brush.CreateSolidBrush(CSkinProperty::GetColor(Skin_Property_Menu_Background_Color)); dcBuf.SelectPen(pen); dcBuf.SelectBrush(brush); dcBuf.Rectangle(&rect); }
void CRightChgUserAccView::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: 在此处添加消息处理程序代码 // 不为绘图消息调用 CDialog::OnPaint() CBitmap bitmap; bitmap.LoadBitmap(IDB_BIT_BKIN); CBrush Brush; Brush.CreatePatternBrush(&bitmap); CBrush* pOldBrush=dc.SelectObject(&Brush); dc.FillRect(CRect(0,0,783,659),&Brush); dc.SelectObject(pOldBrush); }
void CGradientProgressCtrl::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here CRect rectClient; GetClientRect(&rectClient); // If the current positionis invalid then we should fade into the background if (m_nCurrentPosition < m_nLower || m_nCurrentPosition > m_nUpper) { CRect rect; GetClientRect(rect); CBrush brush; brush.CreateSolidBrush(::GetSysColor(COLOR_3DFACE)); dc.FillRect(&rect, &brush); VERIFY(brush.DeleteObject()); return; } // The actions to take depend on whether or not we are a vertical control DWORD dwStyles = GetStyle(); BOOL bVertical = (BOOL)(dwStyles & PBS_VERTICAL); // Figure out what part should be visible so we can stop the gradient when needed float maxWidth; if (bVertical) maxWidth = ((float)m_nCurrentPosition/(float)m_nUpper * (float)rectClient.bottom); else maxWidth = ((float)m_nCurrentPosition/(float)m_nUpper * (float)rectClient.right); // Draw the gradient DrawGradient(&dc, rectClient, (int)maxWidth, bVertical); // Show percent indicator if needed if (m_bShowPercent) { CString strPercent; float fp = 100.0f; fp *= (float)(m_nCurrentPosition-m_nLower); fp /= (float)(m_nUpper-m_nLower); strPercent.Format(_T("%ld/%ld"), m_nCurrentPosition, m_nUpper); dc.SetTextColor(m_clrText); dc.SetBkMode(TRANSPARENT); dc.DrawText(strPercent, &rectClient, DT_VCENTER | DT_CENTER | DT_SINGLELINE); } // Do not call CProgressCtrl::OnPaint() for painting messages }
void CGraphListCtrl::DrawItemCaption(IN CDC* pDC, IN CRect rt, IN CString strName, IN BOOL bSel) { // CBrush brushSel(RGB(0, 120, 240)); // CBrush brushNormal(RGB(166, 210, 255)); // CBrush brushSel(RGB(0, 60, 110)); //pk // CBrush brushNormal(RGB(166, 210, 255)); HBRUSH hOldBrush = NULL; CBrush bush; bush.CreateSolidBrush(m_colTextBk); hOldBrush = (HBRUSH)pDC-> SelectObject(&bush);//透明画刷 // hOldBrush = (HBRUSH)pDC->SelectObject(brushSel); //pDC->SetTextColor(RGB(255, 255, 255)); //pk COLORREF colText = pDC->SetTextColor(GetTextColor()); COLORREF colBk = pDC->SetBkColor(m_colTextBk); CFont* pFont = pDC->SelectObject(&m_font); CSize size = pDC->GetTextExtent(strName); // rt.InflateRect(2,2); // pDC->Rectangle(&rt);//pk // rt.DeflateRect(2,2); //pDC->Draw3dRect(&rt, RGB(255, 255, 255), RGB(128, 128, 128)); // pDC->SetBkMode(TRANSPARENT); if(size.cx > rt.Width()) { pDC->SetTextAlign(TA_LEFT); // rt.DeflateRect(2, 2); pDC->IntersectClipRect(&rt); pDC->FillSolidRect(rt, m_colTextBk); pDC->TextOut(rt.left, rt.top, strName); CRgn rgn; CRect rtOld; GetClientRect(&rtOld); rgn.CreateRectRgn(rtOld.left, rtOld.top, rtOld.right, rtOld.bottom); pDC->SelectClipRgn(&rgn); } else { pDC->SetTextAlign(TA_CENTER); pDC->FillSolidRect(rt, m_colTextBk); pDC->TextOut(rt.left + rt.Width() / 2, rt.top+2, strName); } pDC->SelectObject(pFont); pDC->SetBkColor(colBk); pDC->SetTextColor(colText); pDC->SelectObject(hOldBrush); }
void KDrawFrame::Draw(CDCHandle& dc, CRect rct, COLORREF clrBk) { CBrush brush; brush.CreateSolidBrush(clrBk); HBRUSH hOldBrush = dc.SelectBrush(brush); // 绘制背景 dc.Rectangle(&rct); int left, top, right, botton; CSize size = GetBmpSize(m_bmpLeftTop); left = size.cx; top = size.cy; size = GetBmpSize(m_bmpRightBotton); right = size.cx; botton = size.cy; CDC hTmpDC; hTmpDC.CreateCompatibleDC(dc); HBITMAP bOldbmp = hTmpDC.SelectBitmap(m_bmpLeftTop); dc.BitBlt(0, 0, left, top, hTmpDC, 0, 0, SRCCOPY); size = GetBmpSize(m_bmpTopBoder); hTmpDC.SelectBitmap(m_bmpTopBoder); dc.StretchBlt(left, 0, rct.right-right, top, hTmpDC, 0, 0, size.cx, size.cy, SRCCOPY); hTmpDC.SelectBitmap(m_bmpRightTop); dc.BitBlt(rct.right-right, 0, rct.right, top, hTmpDC, 0, 0, SRCCOPY); size = GetBmpSize(m_bmpLeftBoder); hTmpDC.SelectBitmap(m_bmpLeftBoder); dc.StretchBlt(0, top, left, rct.bottom-botton-top, hTmpDC, 0, 0, size.cx, size.cy, SRCCOPY); size = GetBmpSize(m_bmpRightBoder); hTmpDC.SelectBitmap(m_bmpRightBoder); dc.StretchBlt(rct.right-right, top, right, rct.bottom-botton-top, hTmpDC, 0, 0, size.cx, size.cy, SRCCOPY); hTmpDC.SelectBitmap(m_bmpLeftBotton); dc.BitBlt(0, rct.bottom-botton, left, botton, hTmpDC, 0, 0, SRCCOPY); size = GetBmpSize(m_bmpBottonBoder); hTmpDC.SelectBitmap(m_bmpBottonBoder); dc.StretchBlt(left, rct.bottom-botton, rct.right-right, botton, hTmpDC, 0, 0, size.cx, size.cy, SRCCOPY); hTmpDC.SelectBitmap(m_bmpRightBotton); dc.BitBlt(rct.right-right, rct.bottom-botton, rct.right, botton, hTmpDC, 0, 0, SRCCOPY); hTmpDC.SelectBitmap(bOldbmp); dc.SelectBrush(hOldBrush); }
void COXTabViewContainer::DrawTabBtnArea(CDC* pDC) { ASSERT(m_arrTabBtnRects.GetSize()==GetPageCount()); pDC->IntersectClipRect(m_rectTabBtnArea); pDC->FillSolidRect(m_rectTabBtnArea,::GetSysColor(COLOR_BTNFACE)); CPen pen(PS_SOLID,1,::GetSysColor(COLOR_WINDOWTEXT)); CPen* pOldPen=pDC->SelectObject(&pen); pDC->MoveTo(m_rectTabBtnArea.left,m_rectTabBtnArea.top); pDC->LineTo(m_rectTabBtnArea.right,m_rectTabBtnArea.top); CBrush brush; brush.CreateSolidBrush(::GetSysColor(COLOR_BTNFACE)); CBrush* pOldBrush=pDC->SelectObject(&brush); CFont* pOldFont=NULL; ASSERT((HFONT)m_fontTabBtnText!=NULL); if((HFONT)m_fontTabBtnText!=NULL) pOldFont=pDC->SelectObject(&m_fontTabBtnText); for(int nIndex=0; nIndex<GetPageCount(); nIndex++) { if(nIndex!=GetActivePageIndex()) DrawTabButton(pDC,nIndex); } if(GetActivePageIndex()!=-1) { CBrush brushActive; brushActive.CreateSolidBrush(::GetSysColor(COLOR_WINDOW)); pDC->SelectObject(&brushActive); ASSERT((HFONT)m_fontActiveTabBtnText!=NULL); if((HFONT)m_fontActiveTabBtnText!=NULL) pDC->SelectObject(&m_fontActiveTabBtnText); DrawTabButton(pDC,GetActivePageIndex()); } if(pOldFont!=NULL) pDC->SelectObject(pOldFont); if(pOldBrush!=NULL) pDC->SelectObject(pOldBrush); if(pOldPen!=NULL) pDC->SelectObject(pOldPen); }
void CrainDlg::doThread()//由线程执行的方法 { CBrush aBrush;//画笔,主要用来填充颜色 CPen aPen;//钢笔,主要用来画线条 CRect aRect;//矩形, CWnd * pWind=GetDlgItem(IDC_PIC);//获取画图框资源 CDC* pDC=pWind->GetDC();//画布 struct dropletchain *pRain;//用来读取雨点链表 while(1) { //画背景 aBrush.CreateSolidBrush(RGB(0,0,0));//设置画笔的颜色,即天空的颜色 pWind->GetClientRect(&aRect);//获取画布大小 aRect.bottom-=DEFAULT_BOTTOM_HEIGHT;//修改底部的高度,底部向上为天空 pDC->FillRect(aRect,&aBrush);//绘制上方天空 aBrush.DeleteObject();//用完画笔删除 aBrush.CreateSolidBrush(RGB(9,128,104));//设置池塘的颜色 aRect.top+=aRect.Height();//顶部下移 aRect.bottom+=DEFAULT_BOTTOM_HEIGHT;//底部高度下移 pDC->FillRect(aRect,&aBrush);//绘制下方池塘 aBrush.DeleteObject();//删除画笔 pDC->SelectStockObject(NULL_BRUSH);//把DC设置成空心画笔,在画涟漪时可以画出空心椭圆 pRain=pDropletchain;//把指针移向链表头 while(pRain) { aPen.CreatePen(PS_SOLID,pRain->data->thick,pRain->data->color);//创建钢笔 pDC->SelectObject(&aPen);//用这个钢笔来画画 if(pRain->data->y>aRect.top)//若雨点到达池塘顶部 { //画涟漪 pDC->Ellipse(pRain->data->x-pRain->data->radius-ELLIPSE,pRain->data->y-pRain->data->radius,pRain->data->x+pRain->data->radius+ELLIPSE,pRain->data->y+pRain->data->radius);//画出椭圆 pRain->data->radius++;//涟漪椭圆半径增大 if(pRain->data->radius>pRain->data->len||pRain->data->x+pRain->data->radius+ELLIPSE>=aRect.Width()) initDroplet(pRain->data);//如果雨点半径大于雨点长度则重新生成雨点 } else { //画雨点 pDC->MoveTo(pRain->data->x,pRain->data->y);//把画笔移动到指定的坐标 pDC->LineTo(pRain->data->x+(int)pRain->data->len*sin(pRain->data->angle),pRain->data->y+(int)pRain->data->len*cos(pRain->data->angle));//根据角度和长度绘制出斜线 pRain->data->x+=pRain->data->speed;pRain->data->y+=pRain->data->speed;//雨点的坐标增大,增大幅度为各自的speed if(pRain->data->x+(int)pRain->data->len*sin(pRain->data->angle)>=aRect.Width()-pRain->data->thick) initDroplet(pRain->data);//如果超出右侧界限则重新生成雨点 } aPen.DeleteObject();//删除钢笔 pRain=pRain->next;// } Sleep(100-m_slider.GetPos());//在死循环中休眠线程,形成动画效果 } pDC->ReleaseOutputDC();//释放DC资源 }
BOOL CRealTimeView::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default if( pDC && pDC->IsKindOf(RUNTIME_CLASS(CDC)) ) { CRect rect; GetClientRect( &rect ); CBrush brush; brush.CreateSolidBrush( AfxGetProfile().GetColor(CColorClass::clrGraphBK) ); pDC->FillRect( &rect, &brush ); return TRUE; } return CView::OnEraseBkgnd(pDC); }
void CRadarMapCtrl::DrawBg() { CPen pen(PS_SOLID,1,RGB(24,143,27)); CPen *pOldPen=m_dcMemory.SelectObject(&pen); CBrush brush; CRect rect; COLORREF rgbBackGnd = RGB(0,0,0); GetClientRect(&rect); brush.CreateSolidBrush(rgbBackGnd); m_dcMemory.FillRect(rect,&brush); }
void DrawSymbol(CDC *pDC, int x, int y, int length, int width, COLORREF color, DSYMBOL symbol, bool bFill, int angle) { //TRACE("Entering CGraphLine::DrawSymbol\n"); int l = length; // velkost krizika double PI = 3.1415926535897932384626433832795; CPen pen, *pPen; pen.CreatePen(PS_SOLID, width, color); pPen = pDC->SelectObject(&pen); if(symbol == CROSS) { pDC->MoveTo(x+l, y); pDC->LineTo(x-l, y); pDC->MoveTo(x, y+l); pDC->LineTo(x, y-l); return; } if(symbol == ARROW) { pDC->MoveTo(x, y); int xx = int (x + 3*l*cos(angle/10*PI/180)), yy = int (y + 3*l*sin(angle/10*PI/180)); pDC->LineTo(xx, yy); return; } if( (symbol == CIRCLE) || (symbol == RECTANGLE)) { LOGBRUSH logBrush; if(bFill) { logBrush.lbStyle = BS_SOLID; } else { logBrush.lbStyle = BS_HOLLOW; } logBrush.lbColor = color; logBrush.lbHatch = HS_CROSS; CBrush brush; brush.CreateBrushIndirect(&logBrush); CBrush* pOldBrush = (CBrush*)pDC->SelectObject(&brush); if(symbol == CIRCLE) { pDC->Ellipse(x-l, y-l, x+l, y+l); } if(symbol == RECTANGLE) { pDC->Rectangle(x-l, y-l, x+l, y+l); } pDC->SelectObject(pOldBrush); } pDC->SelectObject( pPen ); }
//**************************************************************************** BOOL CGuiTabWnd::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default if (m_Numtabs == 0) { CBrush cbr; cbr.CreateSysColorBrush(COLOR_BTNFACE); CRect m_rect; GetClientRect(m_rect); pDC->FillRect(m_rect,&cbr); } return TRUE; }
BOOL CNPreView::OnEraseBkgnd(CDC* pDC) { if (m_pClient == NULL) { COLORREF nBrushColor = ::GetSysColor(COLOR_3DFACE); CBrush brBackground; VERIFY( brBackground.CreateSolidBrush(nBrushColor) ); CBrush* pOldBrush = (CBrush*)pDC->SelectObject(&brBackground); CRect rect; pDC->GetClipBox(&rect); pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY); pDC->SelectObject(pOldBrush); } return TRUE; }
void WeaselPanel::_HighlightText(CDCHandle dc, CRect rc, COLORREF color) { rc.InflateRect(m_style.hilite_padding, m_style.hilite_padding); CBrush brush; brush.CreateSolidBrush(color); CBrush oldBrush = dc.SelectBrush(brush); CPen pen; pen.CreatePen(PS_SOLID, 0, color); CPen oldPen = dc.SelectPen(pen); CPoint ptRoundCorner(m_style.round_corner, m_style.round_corner); dc.RoundRect(rc, ptRoundCorner); dc.SelectBrush(oldBrush); dc.SelectPen(oldPen); }
void CSplashScreenEx::DrawWindow(CDC *pDC) { CDC memDC; CBitmap *pOldBitmap; CRect rtText(m_rcText); if(m_bitmap.GetSafeHandle()!=0){ // Blit Background memDC.CreateCompatibleDC(pDC); pOldBitmap=memDC.SelectObject(&m_bitmap); pDC->BitBlt(0,0,m_nBitmapWidth,m_nBitmapHeight,&memDC,0,0,SRCCOPY); memDC.SelectObject(pOldBitmap); }else{ CBrush brText; brText.CreateSolidBrush(m_crTextColor); CBrush brBg; brBg.CreateSolidBrush(m_crBgColor); pDC->FillRect(&rtText,&brBg); pDC->FrameRect(&rtText,&brText); rtText.DeflateRect(2,2,2,2); pDC->FrameRect(&rtText,&brText); rtText.DeflateRect(5,5,5,5); } // Draw Text CFont *pOldFont; pOldFont=pDC->SelectObject(&m_myFont); pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(m_crTextColor); if(m_rcText.Height()==0){ rtText.bottom=rtText.top+rtText.Width();// Просто чтобы непусто было pDC->DrawText(m_strText,-1,rtText,m_uTextFormat|DT_CALCRECT); m_nBitmapHeight=int(rtText.Height()+2.5*GetSystemMetrics(SM_CYMENU)+20);/*Границы*/ m_rcText.bottom=m_rcText.top+m_nBitmapHeight; }else{ if(m_strTitle!=""){ pDC->DrawText(m_strTitle,-1,rtText,m_uTextFormat); rtText.top+=GetSystemMetrics(SM_CYMENU); } if(m_strFooter!=""){ CRect rtFooter(rtText); rtFooter.top=rtFooter.bottom-GetSystemMetrics(SM_CYMENU); pDC->DrawText(m_strFooter,-1,rtFooter,m_uTextFormat); rtText.bottom-=GetSystemMetrics(SM_CYMENU); } pDC->DrawText(m_strText,-1,rtText,m_uTextFormat); } pDC->SelectObject(pOldFont); }
BOOL CCameraView::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default COLORREF rgbBackGnd = RGB(208,212,221); CBrush brush; brush.CreateSolidBrush(rgbBackGnd); CBrush *pOldbrush = pDC->SelectObject(&brush); CRect rect; GetClientRect(&rect); // pDC->Rectangle(&rect); pDC->FillRect(rect,&brush); return CDockablePane::OnEraseBkgnd(pDC); }
BOOL CLEDClock::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default CBrush brush; brush.CreateSolidBrush( ::GetSysColor(COLOR_WINDOWTEXT) ); CBrush* pOldBrush = pDC->SelectObject(&brush); CRect rectClient; GetClientRect(&rectClient); pDC->PatBlt(0, 0, rectClient.Width(), rectClient.Height(), PATCOPY); pDC->SelectObject(pOldBrush); return CStatic::OnEraseBkgnd(pDC); }
void CRectTool::OnMouseMove(_CVIEW* pView, UINT nFlags, CPoint& point) { CDC* pDC = NULL; pDC = pView->GetDC(); if (pDC == NULL) return; CMiniCADDoc* pDoc = pView->GetDocument(); if (pDoc==NULL)return; CADGraphics *pGraphics = &pDoc->m_Graphics; CDisplay *pDisplay = pGraphics->m_pDisplay; if (pDisplay == NULL) return; if (pDoc->m_Graphics.m_GraphicsMode==Layout) SetCursor(AfxGetApp()->LoadCursor(IDC_DRAW_B)); else SetCursor(AfxGetApp()->LoadCursor(IDC_DRAW_W)); if (c_bSnap) { pDoc->m_Graphics.m_bSnapStatus=true; pDoc->m_Graphics.SnapHandle(pDC,point); } if (c_nDown!=1) { DeleteDC(pDC->m_hDC); return; } CPen Pen; if (!Pen.CreatePen(PS_SOLID, 1, RGB(255,255,255))) return; CPen* pOldPen = pDC->SelectObject(&Pen); LOGBRUSH logBrush; logBrush.lbColor = 0; logBrush.lbHatch = 0; logBrush.lbStyle = BS_NULL; CBrush NullBrush; NullBrush.CreateBrushIndirect(&logBrush); CBrush* pOldBrush = pDC->SelectObject(&NullBrush); int oldDrawMode = pDC->SetROP2(R2_XORPEN); if (!c_bJustDraw) pDC->Rectangle(c_PtDown.x,c_PtDown.y,c_PtOld.x,c_PtOld.y); c_bJustDraw = false; pDC->Rectangle(c_PtDown.x,c_PtDown.y,point.x,point.y); pDC->SetROP2(oldDrawMode); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); Pen.DeleteObject(); DeleteDC(pDC->m_hDC); CDrawTool::OnMouseMove(pView, nFlags, point); }
void CVectorStatic::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here CRect rt1; GetClientRect(&rt1); CBrush brush; brush.CreateSolidBrush(RGB(255,255,255)); CBrush* pOldBrush=dc.SelectObject(&brush); CPen pen; pen.CreatePen(PS_SOLID,1,RGB(192,192,192)); CPen *poldpen=dc.SelectObject(&pen); dc.Rectangle(&rt1); dc.SelectObject(pOldBrush); dc.SelectObject(poldpen); CSize sz=m_vector.GetSize(); if ((sz.cx==0)||(sz.cy==0)) return; float scaleX=1; float scaleY=1; if((rt1.Width()<sz.cx)||(rt1.Height()<sz.cy)) { if (rt1.Width()<sz.cx) scaleX=((float)rt1.Width())/(float)(sz.cx+1); if (rt1.Height()<sz.cy) scaleY=((float)rt1.Height())/(float)(sz.cy+1); float scale=__max(scaleX,scaleY); sz.cx=__min(rt1.Width()-10,(int)((float)(sz.cx-1)*scale)); sz.cy=__min(rt1.Height()-10,(int)((float)(sz.cy-1)*scale)); } else { if (rt1.Width()>sz.cx) scaleX=(int)((float)rt1.Width())/(float)(sz.cx+1); if (rt1.Height()>sz.cy) scaleY=(int)((float)rt1.Height())/(float)(sz.cy+1); float scale=__min(scaleX,scaleY); sz.cx=__min(rt1.Width()-10,(int)((float)(sz.cx-1)*scale)); sz.cy=__min(rt1.Height()-10,(int)((float)(sz.cy-1)*scale)); } rt1.SetRect(5,5,sz.cx,sz.cy); m_vector.Draw(&dc,rt1,rt1,0,FALSE); // Do not call CStatic::OnPaint() for painting messages }
//------------------------------------------------------------ void CBMRegView::OnDrawRow(CDC* pDC, int nRow, int y) { CBrush brushBackground; COLORREF crNewBack,crNewText = RGB(128,0,0), crOldText, crOldBackground = 0; CFont FontNew,*FontOld; int width,i,Pos,n,k; char buf[128]; CSize cs; CSample* pReg; TEXTMETRIC tm; CScriptDoc* pDoc = GetDocument(); pDC->GetTextMetrics(&tm); width = tm.tmAveCharWidth; //Ширина одного символа FontNew.CreateFontIndirect(&lf); FontOld = pDC->SelectObject((CFont*)&FontNew); if ( !pDoc->m_RowMask.IsEmpty() && pDoc->m_RowMask.GetBitAt(nRow)) crNewBack =RGB(224,224,0); else crNewBack =::GetSysColor(COLOR_WINDOW); brushBackground.CreateSolidBrush(crNewBack); crOldBackground = pDC->SetBkColor(crNewBack); // Установить текущей Pos=40; CRect rectSelection; pDC->GetClipBox(&rectSelection); rectSelection.top = y; rectSelection.bottom = y + m_nRowHeight+2; pDC->FillRect(&rectSelection, &brushBackground); // Всю строку crOldText = pDC->SetTextColor(crNewText); // Красный текст PutNumber(pDC,nRow,y,FontOld,&FontNew,&lf); pDC->MoveTo(Pos-3,y); pDC->LineTo(Pos-3,rectSelection.bottom); pReg = pDoc->m_pReguls.GetAt(nRow); for (i=0; i<(int)pDoc->m_nDom; i++) { if ((i&1)==0) pDC->SetTextColor(crOldText); // Черный текст for (k=n=0; n<(int)pDoc->m_DomVal[i]; n++) k |= pReg->m_Values.GetAt(pDoc->m_DomAdr[i]+n); for (n=0; n<(int)pDoc->m_DomVal[i]; n++) { if (k&2) buf[n]= (pReg->m_Values.GetAt(pDoc->m_DomAdr[i]+n)==0) ? '1':Symbol0; else buf[n]= pReg->m_Values.GetAt(pDoc->m_DomAdr[i]+n) ? '1':Symbol0; } buf[n]='\0'; cs = pDC->GetTextExtent(buf,pDoc->m_DomVal[i]); pDC->TextOut(Pos, y, buf,pDoc->m_DomVal[i]); Pos+=cs.cx+5; pDC->MoveTo(Pos-3,y); pDC->LineTo(Pos-3,rectSelection.bottom); if ((i&1)==0) pDC->SetTextColor(crNewText); // Красный текст } pDC->SetBkColor(crOldBackground); pDC->SetTextColor(crOldText); pDC->SelectObject((CFont*)FontOld); FontNew.DeleteObject(); }