初学vc2003,视图如何响应菜单命令?高手请指点!

nanshi07 nanshi07 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我c++学的很差,请高手详细指点:

单文档工程,工程名称:pic_1
工程的菜单栏内容如下:
“画线”“帮助”

一、要求实现功能:
点击菜单栏中的“画线”,在文档视图区内画一条线出来。

二、操作步骤:
1、设置菜单项“画线”
2、鼠标右击“画线”,在弹出的菜单中选择“添加事件处理程序".
3、在弹出的“事件处理程序向导”中依次选择:
消息类型:COMMAND
类列表:pic_1View
4、点击“添加编辑”按钮
5、系统自动在pic_1View.cpp中出现
void Cpic_1View::OnFileNew()
{
// TODO: 在此添加命令处理程序代码
}
6、我在第五步中的代码添加以下内容:
void Cpic_1View::OnFileNew(CDC* pDC)
{
CPen NewPen(PS_SOLID,3,RGB(0,100,100));
pDC->LineTo(20,50);
pDC->MoveTo(50,100);

// TODO: 在此添加命令处理程序代码
}

7、编译结果提示有错误,内容如下:
“Cpic_1View”中没有找到重载的成员函数



------------------------------------------
问:
1、错误提示是什么意思?
2、什么地方缺少输入?
3、如何修改才能完成画线的目标?

-------------------------------------------------------------------
------------------------------------------------------------------
我在pic_1view中设置了一个布尔变量m_line_1

奇怪的是
如下面编写的代码,那么程序运行的时候不自动出现线条,但是菜单命令“画线”也没有用了:
// Cpic_1View 绘制

void Cpic_1View::OnDraw(CDC* pDC/*pDC*/)
{
Cpic_1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
//if (!pDoc)
//return;

if (m_line_1)
{ CPen NewPen(PS_SOLID,30,RGB(100,100,100));
pDC->LineTo(20,50);
pDC->MoveTo(50,100);
}

// TODO: 在此处为本机数据添加绘制代码
}
--------------------------------------------
而如果把
......
if (m_line_1)----------------变成if (m_line_1=1)
{ CPen NewPen(PS_SOLID,30,RGB(100,100,100));
pDC->LineTo(20,50);
pDC->MoveTo(50,100);
.....

那么程序自动绘制线条。

我想知道,设置了这个变量,到底有什么作用?
怎么利用这个变量来控制菜单命令?


...全文
评论 11
收藏 已收藏
分享
返回顶部
nanshi07
C++ 语言 65,214 成员 250,514 内容