///没见过还有这么菜的鸟//

z4b 2003-04-13 11:05:27
问题描述:

简单的实现,一点 一个菜单change 出现 hello
点另一个菜单 change1 ,hello没,出现world 。/

实现代码:

Mfc_1View.h
class CMfc_1View : public CView
{
protected: // create from serialization only
CMfc_1View();
DECLARE_DYNCREATE(CMfc_1View)
public:
CMfc_1Doc* GetDocument();
int iDraw;
}


MainFrm.cpp


void CMfc_1View::OnChange() //Change按狃
{
iDraw=1;
InvalidateRect(NULL,TRUE);
}

void CMfc_1View::OnChange1() //Change1按狃
{
iDraw=2;
InvalidateRect(NULL,TRUE);
}


Mfc_1View.cpp


void CMfc_1View::OnDraw(CDC* pDC)
{
switch (iDraw)
{
case 1:{
pDC->TextOut(0,0," hello!");
break;}
case 2:{
pDC->TextOut(0,0," world!");
break;}
}
}

怎么老也link 不过去?

--------------------Configuration: Mfc_1 - Win32 Debug--------------------
Compiling...
MainFrm.cpp
G:\Graphic\Mfc_1\MainFrm.cpp(115) : error C2065: 'id_Draw' : undeclared identifier
Generating Code...
Skipping... (no relevant changes detected)
Mfc_1.cpp
Error executing cl.exe.

Mfc_1.exe - 1 error(s), 0 warning(s)

麻烦各位老大帮我指正错误,帮我实现。谢谢了。

QQ:41733842
Email:z4b@163.com
...全文
50 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
coyer 2003-04-14
  • 打赏
  • 举报
回复
今天上网,看到你的消息了。现在搞定了没?
有人给你发了个完整的,我就不做了。
还搞不定,再找我。

另外,把你改变变量的那一段代码,全部放到View中去,不要放到MainFrame中。
alphapaopao 2003-04-13
  • 打赏
  • 举报
回复
我也没有,呵呵:)
zhenxizhou 2003-04-13
  • 打赏
  • 举报
回复
error C2065: 'id_Draw' : undeclared identifier
很清楚啊,id_Draw没有定义
lblyy76 2003-04-13
  • 打赏
  • 举报
回复
就是啊。连你id_Draw这出错的代码都没有贴出来。看看你的id_Draw在哪,再把那部分贴出来。如果是定义在资源中,就要调用#include "resource.h"
chinaqianhu 2003-04-13
  • 打赏
  • 举报
回复
我没看到id_Draw在那里定义过呀?
zhangyilan 2003-04-13
  • 打赏
  • 举报
回复
你忘了在MainFrm.cpp中申明id_Draw变量
菜牛 2003-04-13
  • 打赏
  • 举报
回复
变量iDraw和消息响应函数OnChange()、OnChange1()都在View中实现,不要和MainFrame搞在一起就行了。
shaolunyuan 2003-04-13
  • 打赏
  • 举报
回复
程序非常简单,我只在 view.cpp 文件中添加了下面的代码,其他的都没有变化

另外,在资源中添加了 菜单

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
///////////////下面是添加的内容!!!!!!!!!!!!!!
void CChangehelloView::OnChange1()
{
CClientDC dc(this);
dc.TextOut(100,100,"yuanshaolun");
}

void CChangehelloView::OnChange2()
{
// TODO: Add your command handler code here
CClientDC dc(this);
dc.TextOut(100,100,"helloworld");
}


我把工程给你发过去了,你自己看看吧。

呵呵

祝你好运。

还有,中午你给我消息的时候我不在啊

所以,现在给你 了

晚了点,呵呵。
shaolunyuan 2003-04-13
  • 打赏
  • 举报
回复
这么多人给你帮助,还没有搞定吗?

呵呵

你再仔细看看吧!!

我做做,完了整个给你 !!
coyer 2003-04-13
  • 打赏
  • 举报
回复
呵呵,不用我说了吧。
webber84 2003-04-13
  • 打赏
  • 举报
回复
你有没有初始化iDraw啊?
z4b 2003-04-13
  • 打赏
  • 举报
回复
default:
pDC->TextOut(20,20,"DefaultText!");
break;

为什么把这个加上了救实现了呢

请打虾 讲讲。/
coyer 2003-04-13
  • 打赏
  • 举报
回复
加一行
switch (iDraw)
{
case 1:{
pDC->TextOut(0,0," hello!");
break;}
case 2:{
pDC->TextOut(0,0," world!");
break;}
default:
pDC->TextOut(20,20,"DefaultText!");
break;
}
dycdyc123 2003-04-13
  • 打赏
  • 举报
回复
我看看
lunpinghh 2003-04-13
  • 打赏
  • 举报
回复
万一再不行,你跟一把你就知道问题在什么地方了。设断点,再按F10
nonocast 2003-04-13
  • 打赏
  • 举报
回复
要在头文件(.H)中申明变量
而不是CPP
z4b 2003-04-13
  • 打赏
  • 举报
回复
事呀,通过了。可是看不到字符。
改了 不在 0 0 位置也看布道。
老大教我。
coyer 2003-04-13
  • 打赏
  • 举报
回复
我想问一下,搞清楚了View和MainFrm,以及Doc的关系了吗?如果没有,建议你用Dialog类型的方式。

另外,不要把字符串放在0,0的位置,到时候你可能又要问怎么看不到你的文字的问题。
coyer 2003-04-13
  • 打赏
  • 举报
回复
在MainFrm中,你确实没有定义iDraw呀,你仔细看看,你的iDraw只在View中定义了,这根本就不是一回事呀。
z4b 2003-04-13
  • 打赏
  • 举报
回复
还是不行。没有人。给我编一个发给我。

看来这里真的没什么好鸟。

z4b@163.com
加载更多回复(5)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧