Beispiel #1
0
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;

}
Beispiel #3
0
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);
}
Beispiel #4
0
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);
}
Beispiel #5
0
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(); 
	*/
}
Beispiel #6
0
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;
}
Beispiel #7
0
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);
}
Beispiel #8
0
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
}
Beispiel #9
0
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);
}
Beispiel #10
0
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
}
Beispiel #15
0
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);
}
Beispiel #16
0
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);
}
Beispiel #17
0
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);
}
Beispiel #18
0
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资源
}
Beispiel #19
0
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);
}
Beispiel #20
0
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 );
}
Beispiel #22
0
//****************************************************************************
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;
}
Beispiel #23
0
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;
}
Beispiel #24
0
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);

}
Beispiel #26
0
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);
}
Beispiel #27
0
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);
}
Beispiel #28
0
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
}
Beispiel #30
0
//------------------------------------------------------------
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();
}