MFC限制鼠标区域、画橡皮条线、任务栏显示图标、核对标记、文档背景色(二)

涛涛在学习程序设计,欢迎各位程序设计爱好者和我一起学习

 

 

限制鼠标活动区域
可以写在view类的OnMouseMove中添加如下代码
if (nFlags&&MK_LBUTTON)
{
 CWnd *hwnd = GetActiveWindow();
 CRect rect;
 hwnd->GetWindowRect(&rect);
 ClipCursor(&rect);
}
当要恢复鼠标使用范围时调用ClipCursor(NULL);即可。

还有SetCapture()和ReleaseCapture()的使用

 

 

画弹性橡皮线
在view类里响应左键单击,以及鼠标移动和左键弹起消息
鼠标移动
CClientDC dc(this);
dc.SetROP2(R2_NOT);
dc.MoveTo(oldPoint);
dc.LineTo(newPoint);
  
dc.MoveTo(oldPoint);
dc.LineTo(point);

newPoint = point;
左键按下只需记录坐标点,鼠标弹起只需画线。
当要画其它图形时要麻烦很多,因为在鼠标移动时要用到画刷

画矩形
if (GetCapture()==this&& nFlags && MK_LBUTTON)
{    
 newPen->CreatePen(PS_DASHDOT,2,RGB(250,0,0));
 oldPen = dc.SelectObject(newPen);
 newBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
 oldBrush = dc.SelectObject(newBrush);
    
 dc.SetROP2(R2_NOT);
 dc.Rectangle(oldPoint.x,oldPoint.y,newPoint.x,newPoint.y);
 dc.Rectangle(oldPoint.x,oldPoint.y,point.x,point.y);

 newPoint = point;
 dc.SelectObject(oldBrush); //恢复画笔   
 dc.SelectObject(oldPen);
}

 

 

为菜单设置核对或者选中标记
主要函数是SetCheck()打钩,SetRadio()点位标记。
在命令菜单中设置变量的值,在命令更新消息中调用pCmdUI->SetCheck(m_option==?);
m_option为当前选中的菜单的标志变量

 

 

设置文档背景颜色
在View类的OnDraw中添加以下代码:
CRect rect;    //创建CRect对象
GetClientRect(rect);    //获取窗口大小
pDC->FillSolidRect(rect,RGB(0,0,0));   //用RGB()来指定文档的背景颜色

 

欢迎访问本页面,也欢迎各位程序设计爱好者和我一起学习……

 

你可能感兴趣的:(活动,null,文档,mfc,任务,图形)