else
{
//CDialog::OnPaint();
CDC* pDC=GetDC();
CRect rect,ellipserect;
GetClientRect(&rect);
CDC dcMem;
CBitmap bmp;
dcMem.CreateCompatibleDC(pDC);
bmp.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
dcMem.SelectObject(&bmp);
dcMem.FillSolidRect(&rect,RGB(255,0,0));
CPen pen,*pOldPen;
pen.CreatePen(PS_SOLID,7,RGB(255,0,0));
pOldPen=dcMem.SelectObject(&pen);
dcMem.Ellipse(400,100,600,300);//画圆
dcMem.Rectangle(470,170,530,230);//圆里的小正方形
dcMem.Rectangle(50,100,380,300);//显示区域的大正方形
dcMem.Rectangle(80,120,350,280);//显示区域的小正方形
dcMem.MoveTo(470,230);
dcMem.LineTo(400,300);
dcMem.MoveTo(400,100);
dcMem.LineTo(470,170);
dcMem.MoveTo(600,100);
dcMem.LineTo(530,170);
dcMem.MoveTo(600,300);
dcMem.LineTo(530,230);
dcMem.SetBkMode(TRANSPARENT);
dcMem.TextOut(485,130,"UP");
dcMem.TextOut(475,250,"DOWN");
dcMem.TextOut(430,200,"C");
dcMem.TextOut(550,200,"OK");
CString s,s1;
s.Format("您按的00000000000000000000是%s键!",s1);
// TODO: Add your message handler code here and/or call default
// m_Ok=1;
if(m_Ok==1&&m_Lbtn==1)
{
s1="OK";
dcMem.TextOut(120,200,s);
m_Ok=0;
m_Lbtn=0;
}
if(m_C==1&&m_Lbtn==1)
{
s1="C";
dcMem.TextOut(120,200,s);
m_C=0;
m_Lbtn=0;
}
if(m_up==1&&m_Lbtn==1)
{
s1="UP";
dcMem.TextOut(120,200,s);
m_up=0;
m_Lbtn=0;
}
if(m_down==1&&m_Lbtn==1)
{
s1="DOWN";
dcMem.TextOut(120,200,s);
m_down=0;
m_Lbtn=0;
}
dcMem.SelectObject(pOldPen);
pen.DeleteObject();
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);
dcMem.DeleteDC();
bmp.DeleteObject();
}
BOOL CMyDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return true;
}
void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
UpdateData(true);
m_Lbtn=1;
UpdateData(FALSE);
// void CMyDlg::OnPaint();
// CDialog::OnLButtonDown(nFlags, point);
}
void CMyDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(((point.x-500)*(point.x-500)+(point.y-200)*(point.y-200))<=10000)
{
if((point.y<=170)&&((point.x+point.y)<=700)&&((point.x-point.y)>=300))
{
m_up=1;m_Ok=0;m_C=0;m_down=0;
::SetCursor(::LoadCursor(NULL,IDC_HAND));
}
if((point.y>=230)&&((point.x+point.y)>=700)&&((point.x-point.y)<=300))
{
m_down=1;m_up=0;m_Ok=0;m_C=0;
::SetCursor(::LoadCursor(NULL,IDC_HAND));
}
if((point.x<=470)&&((point.x+point.y)<=700)&&((point.x-point.y)<=300))
{
m_C=1;m_up=0;m_Ok=0;m_down=0;
::SetCursor(::LoadCursor(NULL,IDC_HAND));
}
if((point.x>=530)&&((point.x+point.y)>=700)&&((point.x-point.y)>=300))
{
m_Ok=1;m_up=0;m_C=0;m_down=0;
::SetCursor(::LoadCursor(NULL,IDC_HAND));
}
}
CDialog::OnMouseMove(nFlags, point);
}