求助,mfc数组绘图

xhudqlg 2012-12-27 12:32:51
单文档程序:
在xxview类中定义了两个数组:
public:
int x[4];
int y[4];
在view类的函数OnOpenTxt()中添加了给数组赋值的语句:

void CxxView::OnOpenTxt()
{
// TODO: Add your command handler code here
int x[4]={100};
int y[4]={200};


}
运行到这里的时候,我用watch查看,x[0]的值是100,然后我再ondraw函数里写了如下程序:
CPcbDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CClientDC dc(this);

dc.Rectangle(200,200,x[0],400);

但是发现x[0]的值变成-873636891,并且不能再相应的位置绘制矩形,

请问各位大哥,是我的数组定义有问题还是说我的数组引用由问题,拜谢 了!

...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yayafu 2012-12-27
  • 打赏
  • 举报
回复
void CxxView::OnOpenTxt() { // TODO: Add your command handler code here int x[4]={100}; int y[4]={200}; } int x是局部变量啊,出了OnOpenTxt就没有了,类中的x,y根本就没初始化
schlafenhamster 2012-12-27
  • 打赏
  • 举报
回复
改为 模块变量 如在 doc中 int m_x[4];//={100}; int m_y[4];//={200}; 在再ondraw函数里: dc.Rectangle(200,200,pDoc->m_x[0],400);
rxguoblp 2012-12-27
  • 打赏
  • 举报
回复
语法错误,int x[4]和int y[4]已经声明过了并且还是全局变量,在你的OnOpenTxt()函数中直接复制或使用就行了,去掉前面的“int”。
傻X 2012-12-27
  • 打赏
  • 举报
回复
基础语法没过关 void CxxView::OnOpenTxt() { // TODO: Add your command handler code here x[0]=100; //去掉int,只有初始化才支持那样赋值 y[0]=200; }
yayafu 2012-12-27
  • 打赏
  • 举报
回复
void CxxView::OnOpenTxt() { // TODO: Add your command handler code here x[0]=100; y[0]=200; } 就好了啊,楼主,好好学学语法

16,472

社区成员

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

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

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