涛涛在学习程序设计,欢迎各位程序设计爱好者和我一起学习
限制鼠标活动区域
可以写在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()来指定文档的背景颜色
欢迎访问本页面,也欢迎各位程序设计爱好者和我一起学习……