void CdrawView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
//MessageBox("点击一下");
m_point=point;// 全局变量
CView::OnLButtonDown(nFlags, point);
}
void CdrawView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
//windows api 方法 方法一
//HDC hdc;
//hdc=::GetDC(m_hWnd);
//MoveToEx(hdc,m_point.x,m_point.y,NULL);//MoveToEx是用来移动当前画笔的位置
//LineTo(hdc,point.x,point.y);//Line To 画直线的函数
//::ReleaseDC(m_hWnd,hdc);//释放DC
//方法二
//CDC *pdc;
//pdc=GetDC();
//pdc->MoveTo(m_point.x,m_point.y);
//pdc->LineTo(point.x,point.y);
//ReleaseDC(pdc);
//方法三
//CWindowDC wdc(this);
//wdc.MoveTo(m_point.x,m_point.y);
//wdc.LineTo(point.x,point.y);
//ReleaseDC(&wdc);
//.............................//
//CWindowDC dc2(GetDesktopWindow()); //GetDesktopWindow() 获取桌面窗口句柄
//dc2.MoveTo(m_point.x,m_point.y);
//dc2.LineTo(point.x,point.y);
//dc2.MoveTo(m_point);
//dc2.LineTo(point);
//方法四
// //CCliectDC在构造和析构函数中进行了GetDC和ReleaseDC,不必再手动申请和释放
/* CClientDC dc(this);//CClientDC dc(GetParent());
dc.MoveTo(m_point);
dc.LineTo(point);*/
//方法五
/*CPaintDC cpdc(this);
cpdc.MoveTo(m_point);
cpdc.LineTo(point);*/
/*CClientDC和CWindowDC 与 CPaintDC 的区别大点
在DC的获取方面 CClientDC和CWindowDC 使用的是并只能是 GetDC 和 ReleaseDC
CPaintDC 使用的是并只能是 BeginPaint 和 EndPaint
CPaintDC 只能用在响应 WM_PAINT 事件
CClientDC,CWindowDC 只能用在响应 非WM_PAINT 事件 */
//不需要销毁
//画笔
//CPen pen(PS_DASHDOT,0.8,RGB(255,255,10));
//CClientDC dc(this);
//CPen *pn=dc.SelectObject(&pen);
//dc.MoveTo(m_point);
//dc.LineTo(point);
//画刷
//CBrush brush(RGB(255,0,255));
//CClientDC dc(this);
矩形填充画刷
//dc.FillRect(CRect(m_point,point),&brush);
//位图画刷
/*CBitmap pBitmap;
pBitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&pBitmap);
CClientDC dc(this);
dc.FillRect(CRect(m_point,point),&brush);*/
//分割线
//CClientDC dc(this);
//CBrush brush;
//dc.Rectangle(CRect(m_point,point));
/*相对比较来说,Rectangle有边框,可以创建透明画刷,而FillRect没有边框,只能创建有色画刷或位图画刷,白色的画刷对于白色背景没有意义。Rectangle要添加到设备描述表中,用法和CPen的一样,而FillRect不用添加,创建后直接使用。*/
//创建一个空画刷 没有背景
//GetStockObject该函数检索预定义的备用笔、刷子、字体或者调色板的句柄。
CClientDC dc(this);
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush *oBrush=dc.SelectObject(pBrush);//SelectObject把一个对象(位图、画笔、画刷等)选入指定的设备描述表。新的对象代替同一类型的老对象。
dc.Rectangle(CRect(m_point,point));
dc.SelectObject(oBrush);
}