*/ // CClientDC dc(GetParent());
CWindowDC dc(GetDesktopWindow()); // CWindowDC dc(GetParent()); dc.MoveTo(m_ptOrigin); dc.LineTo(point);
/* CPen pen(PS_DOT,1,RGB(255,0,0)); CClientDC dc(this);
CPen* pOldPen = dc.SelectObject(&pen); dc.MoveTo(m_ptOrigin); dc.LineTo(point);
dc.SelectObject(pOldPen);
*/ /* //创建一个红色画刷
CBrush brush(RGB(255,0,0)); //创建并获得设备描述表 CClientDC dc(this);
//利用红色画刷填充鼠标拖曳过程中形成的矩形区域 dc.FillRect(CRect(m_ptOrigin,point),&brush);
*/ /* //创建位图对象 CBitmap bitmap; //加载位图资源
bitmap.LoadBitmap(IDB_BITMAP1); //创建位图画刷
CBrush brush(&bitmap); //创建并获得设备描述表 CClientDC dc(this);
//利用红色画刷填充鼠标拖曳过程中形成的矩形区域 dc.FillRect(CRect(m_ptOrigin,point),&brush);
*/ //创建并获得设备描述表 /* CClientDC dc(this); //创建一个空画刷
CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
//将空画刷选入设备描述表
CBrush *pOldBrush = dc.SelectObject(pBrush); //绘制一个矩形
dc.Rectangle(CRect(m_ptOrigin,point)); //恢复先前的画刷
dc.SelectObject(pOldBrush); */
m_bDraw = FALSE;
CView::OnLButtonUp(nFlags, point); }
void CDrawView::OnMouseMove(UINT nFlags, CPoint point) {
/* CClientDC dc(this);
dc.SetROP2(R2_MERGENOTPEN);
//创建一个红色的、宽度为1的实线画笔 CPen pen(PS_SOLID, 1, RGB(255,0,0)); //把创建的画笔选入设备描述表
CPen *pOldPen = dc.SelectObject(&pen); if(m_bDraw == TRUE) {
// dc.MoveTo(m_ptOrigin); // dc.LineTo(m_ptOld); dc.MoveTo(m_ptOrigin); dc.LineTo(point); dc.LineTo(m_ptOld); //修改线段的起点
//m_ptOrigin = point; m_ptOld = point; }
//恢复设备描述表
dc.SelectObject(pOldPen); */
CView::OnMouseMove(nFlags, point); }
五、实验分析与总结 这个实验觉得很难,键盘还好,但是由于书本上所用的bioskey()是要用VT做的,而我用的是VC,所以出现了错误。后来多方查找资料,才知道bioskey()用vc做不了,则改成了使用getch0,和kbhit()来做,但是它们的使用方法和bioskey不同,要自己查找。 而第二道题用鼠标划线,则是太复杂了,自己编程基本上编译不出来,最后我上网查找了许多资料,问了老师,再参考了一下老师的程序才算是做了出来。 说明:各学院(实验中心)可根据实验课程的具体需要和要求自行设计和确定实验报告的内容要求和栏目,但表头格式按照“实验项目名称”栏以上部分统一。