100分求教关于edit box的问题

geodetic 2002-11-17 04:34:12
程序界面为M*N的edit box矩阵和一个command button,要求用一个M*N维的float数组获取edit box的输入,经过一些计算后再输出到edit box矩阵.
...全文
51 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
geodetic 2002-11-22
  • 打赏
  • 举报
回复
用jennyvenus的方法解决,结贴,谢谢各位
ps:CEdit m[M][N]必须声明为
static CEdit m[M][N],否则链接时将提示
TpDlg.obj : error LNK2005: "class CEdit (* m_edit)[5]" (?m_edit@@3PAY04VCEdit@@A) already defined in Tp.obj

Debug/Tp.exe : fatal error LNK1169: one or more multiply defined symbols found
不知是为什么,有兴趣的请继续跟贴
geodetic 2002-11-20
  • 打赏
  • 举报
回复
谢谢大家.
To小小:数组m_edit确实只在tp.h中定义过.(由于重复定义的提示,还特地把定义语句注释掉,编译提示数组m_edit未定义)
To HKer_007:若用您的方法,edit[M][N]应该在何处定义?
nicolas2001 2002-11-20
  • 打赏
  • 举报
回复
同意jennyvenus的意见
不过他的那段小代码只是解决了获得的问题
输出一样的:用setwindowtext()即可;
数据处理的代码自己知道,
你自己写吧!
_xiao 2002-11-19
  • 打赏
  • 举报
回复
m_edit你定义了两次,去掉在tp.cpp或tp.h文件里的定义
xyw2278 2002-11-19
  • 打赏
  • 举报
回复
这个问题很麻烦
涉及到控件与程序变量的如何关联?比如说你的m_edit[i][j]指的是哪一个CEdit控件;
还有你这里将输入输出放在一个函数里面要实现你上面要求的,很难;一般使用若干按钮,然后再按钮中写函数才行的。

HKer_007 2002-11-19
  • 打赏
  • 举报
回复
你的意思是float数组和CEdit控件一一对应,是吗?
float data[x][y]; // 用这个计算
float edit[x][y]; // 用这个显示,这是CEdit控件float型的变量
// 记住x,y
... ...
data[x][y] = 计算的结果;
edit[x][y] = data[x][y]; // 显示
UpdateData(FALSE); // ..
geodetic 2002-11-19
  • 打赏
  • 举报
回复
可以具体点吗?谢谢
明天去抢劫 2002-11-18
  • 打赏
  • 举报
回复
没有用DDX,那只能用GetWindowText()这个函数了
geodetic 2002-11-18
  • 打赏
  • 举报
回复
写了一段测试代码:
CTpDlg::CTpDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTpDlg::IDD, pParent)
{
char c[100];
int i,j,floatarray[5][5];
for(i=0;i++;i<=4)
for(j=0;j++;j<=4){
m_edit[i][j].GetWindowText(c,100);
floatarray[i][j]=atoi(c);
floatarray[i][j]++;
}
for(i=0;i++;i<=4)
for(j=0;j++;j<=4){
c[i+j]=char(floatarray[i][j]);
m_edit[i][j].SetWindowText(c);
}
结果出现两个link error:
TpDlg.obj : error LNK2005: "class CEdit (* m_edit)[5]" (?m_edit@@3PAY04VCEdit@@A) already defined in Tp.obj

Debug/Tp.exe : fatal error LNK1169: one or more multiply defined symbols found
这些问题可能幼稚可笑,可是目前我真的毫无办法,拜托再帮我看看
用户 昵称 2002-11-18
  • 打赏
  • 举报
回复
反过来写就行了,不过记住数字和字符串的差别
geodetic 2002-11-18
  • 打赏
  • 举报
回复
up
geodetic 2002-11-17
  • 打赏
  • 举报
回复
怎么输出?可以用update函数么?
用户 昵称 2002-11-17
  • 打赏
  • 举报
回复
当我上面的代码写好之后
char c[ 100 ];
int i, j
for( i = 0; i < M; i++ )
for( j = 0; j < N; j++ )
{
m_edit[i][j].GetWindowText( c, 100 );
floatarray[i][j] = atoi( c );
}
GoogleGeek 2002-11-17
  • 打赏
  • 举报
回复
vert easy!
hhuangchunlin 2002-11-17
  • 打赏
  • 举报
回复
你累不累啊,用那么多 EDIT BOX干嘛~~~~~~~~?
geodetic 2002-11-17
  • 打赏
  • 举报
回复
up
geodetic 2002-11-17
  • 打赏
  • 举报
回复
可以说清楚点吗?比如说以{获得输入;处理;输出;}格式给出程序.
程序要求单击command button后,获得输入-处理-输出,获得的输入要传递给float型的数组
(不好意思,本人为windows编程初学者,又要赶一个程序,问的问题可能浅陋可笑,请见谅)
用户 昵称 2002-11-17
  • 打赏
  • 举报
回复
in youclass.h
CEdit m_edit[ M ][ N ];

in youclass.cpp
OnInitDialog()
m_edit[ 0 ][ 0 ].SubclassDlgItem( IDC_EDIT1, this );
m_edit[ 0 ][ 1 ].SubclassDlgItem( IDC_EDIT2, this );
m_edit[ 0 ][ 2 ].SubclassDlgItem( IDC_EDIT3, this );
....

now you can use m_edit access the EDIT contols
ok?
用户 昵称 2002-11-17
  • 打赏
  • 举报
回复
easy

16,471

社区成员

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

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

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