Пример #1
0
void CMyImage::OnPaint() 
{
	if((iImage<0)||(m_ImageList==NULL))
		return;
	CPaintDC dc(this); 
	CRect rect;
	GetClientRect(rect);
	if(!bClicked)
	{
		CPoint p(rect.left + 1,rect.top+1);
		m_ImageList->Draw(&dc, iImage, p, ILD_NORMAL);
	}
	else
	{
		CPoint p(rect.left + 2,rect.top+2);
		m_ImageList->Draw(&dc, iImage, p, ILD_NORMAL);
	}


	CPen BlackPen(PS_SOLID,1,RGB(0,0,0));
	dc.SelectObject(BlackPen);
	dc.MoveTo(rect.left,rect.top);
	dc.LineTo(rect.right,rect.top);
	dc.MoveTo(rect.left,rect.top);
	dc.LineTo(rect.left,rect.bottom);
	if(bClicked)
	{
		dc.MoveTo(rect.left,rect.top+1);
		dc.LineTo(rect.right,rect.top+1);
		dc.MoveTo(rect.left+1,rect.top);
		dc.LineTo(rect.left+1,rect.bottom);

		CPen WhitePen(PS_SOLID,1,RGB(255,255,255));
		dc.SelectObject(WhitePen);
		dc.MoveTo(rect.left,rect.bottom-1);
		dc.LineTo(rect.right-1,rect.bottom-1);
		dc.LineTo(rect.right-1,rect.top);
	}
	else
	{
		dc.MoveTo(rect.left,rect.bottom-1);
		dc.LineTo(rect.right-1,rect.bottom-1);
		dc.LineTo(rect.right-1,rect.top);
	}

}
Пример #2
0
void CTHRESHDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting

//	Init();
	int	i;
	
	for ( i=0; i<GRAYLEVELS; i++ )
	{
		m_nMaxColor = max(m_nMaxColor, dataChannel[i]);	
	}	
	int nMaxHeight = rectDraw.Height() - 40;
//	CPaintDC dc(this);
//	CClientDC dc(this);

	dc.SelectStockObject( WHITE_BRUSH );
	dc.Rectangle( rectDraw );
	//draw the chart axis
	CPen BlackPen(PS_SOLID, 1, RGB(0, 0, 0));
	CPen* pOldPen = dc.SelectObject(&BlackPen);

	for( i = 0; i < NUM_COORDINATEION; i++ )
		if( rect_Coordination[i].bMove )
			dc.MoveTo( rect_Coordination[i].point );
		else
			dc.LineTo( rect_Coordination[i].point );

	DrawHorizonVertCoordination( &dc );
	DrawVertCoordination(  &dc , m_nMaxColor / 4.0f );

	CPen GreenPen(PS_SOLID, 1, RGB(0, 255, 0));
			pOldPen = dc.SelectObject(&GreenPen);
			DrawColorHistogram(  &dc , dataChannel );
			dc.SelectObject(pOldPen);	
	
	DrawCurrentFavorPosition(  &dc );
	DisplayRGBCounts();

	CDialog::OnPaint();
	// Do not call CDialog::OnPaint() for painting messages
}
Пример #3
0
void CDoubleBufferDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트입니다.

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 클라이언트 사각형에서 아이콘을 가운데에 맞춥니다.
		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;

		// 아이콘을 그립니다.
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
#ifndef DOUBLE
		CPaintDC dc(this);
		int x, y;
		CRect rect;
		GetClientRect(&rect);

		CPen *oldPen;
		CPen BlackPen(PS_SOLID, 1, RGB(0,0,0));
		CPen GreenPen(PS_SOLID, 1, RGB(0,255,0));
		CPen BluePen(PS_SOLID, 5, RGB(0,0,255));
		oldPen = dc.SelectObject(&BlackPen);

		for (x = 0; x < rect.right; x += 10)
		{
			dc.MoveTo(x, 0);
			dc.LineTo(x, rect.bottom);
		}

		for (y = 0; y < rect.bottom; y += 10)
		{
			dc.MoveTo(0, y);
			dc.LineTo(rect.right, y);
		}

		dc.SelectObject(&GreenPen);

		dc.Ellipse(ex - r, ey - r, r * 2, r * 2);
		dc.SelectObject(&BluePen);
		dc.Ellipse(ex - r, ey - r, r * 2, r * 2);

		dc.SelectObject(oldPen);
#else
		CPaintDC paintdc(this);
		CDC dc;
		CBitmap dcBitmap, *pOldBitmap;
		CPen BlackPen(PS_SOLID, 1, RGB(0,0,0));
		CPen GreenPen(PS_SOLID, 1, RGB(0,255,0));
		CPen BluePen(PS_SOLID, 5, RGB(0,0,255));
		CPen *pOldPen;

		int x, y;
		CRect rect;
		GetClientRect(&rect);

		dc.CreateCompatibleDC(&paintdc);
		dcBitmap.CreateCompatibleBitmap(&paintdc, rect.Width(), rect.Height());
		pOldBitmap = dc.SelectObject(&dcBitmap);
		dc.PatBlt(0, 0, rect.Width(), rect.Height(), WHITENESS);

		pOldPen = dc.SelectObject(&BlackPen);

		for (x = 0; x < rect.right; x += 10)
		{
			dc.MoveTo(x, 0);
			dc.LineTo(x, rect.bottom);
		}

		for (y = 0; y < rect.bottom; y += 10)
		{
			dc.MoveTo(0, y);
			dc.LineTo(rect.right, y);
		}

		dc.SelectObject(&GreenPen);

		dc.Ellipse(ex - r, ey - r, ex - r + r * 2, ey - r + r * 2);
		dc.SelectObject(&BluePen);
		dc.Ellipse(ex - r, ey - r, ex - r + r * 2, ey - r + r * 2);

		paintdc.BitBlt(0, 0, rect.Width(), rect.Height(), &dc, 0, 0, SRCCOPY);
		
		dc.SelectObject(pOldPen);
		dc.SelectObject(pOldBitmap);
		
		ReleaseDC(&dc);
		DeleteDC(dc);
#endif
		CDialogEx::OnPaint();
	}
}