MFC中,点击菜单栏选项之后能够自由画线,应该怎么弄啊?本来是不能画线的,点了菜单之后才能画

2024-12-12 11:26:38
推荐回答(1个)
回答1:

...不知道阁下用的是Microsoft Visual Studio的哪个版本...在下这里就用Microsoft Visual Studio 2005献丑了哈......打开VS2005新建一个“MFC应用程序”的“单文档程序”接着,按F7键链按一下打开资源视图-->选择menu菜单下的 IDR_MAINFRAME-->双键它在项目的菜单栏里新建一个子菜单(画线),再在新建的子菜单下再新建两个子菜单(启动画线、关闭画线)接着,在类视图的View类那里添加三个private的变量,两个bool类型的(bl和m_bl),一个CPoint类型的(m_point) 再回到资源视图下的那个新建的子菜单(启动画线)那里,在“启动画线”的子菜单上面按右键,选择“添加事件处理程序”。在“事情处理程序向导”那里,消息类型选择“COMMAND”,类列表那里选择View类(关闭画线那个子菜单也是一样添加)然后,在“启动画线”子菜单所对映的函数那打入代码:bl==true;在“关闭画线”子菜单所对映的函数那打入代码:bl==false;接着,在类视图那右键选择View类,选择“属性”,在属性那选择“消息”(图标:),然后在下面添加消息那添加 WM_LBUTTONDOWN 消息、WM_LBUTTONUP 消息和 WM_MOUSEMOVE 消息在 WM_LBUTTONDOWN 所对映的函数那里打入下面代码:m_bl=true;m_point=point;在 WM_LBUTTONUP 所对映的函数那里打入下面代码:m_bl=false;在 WM_MOUSEMOVE 所对映的函数那里打入下面代码: if(bl==true)
{
CClientDC dc(this);
if(m_bl==true)
{
dc.MoveTo(m_point);
dc.LineTo(point);
m_point=point;
}
}接着...完工了!!希望阁下对在下的回答满意,谢谢!!^_^