| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1774 人关注过本帖
标题:关于在对话框里输出一个数组,恳求解答
只看楼主 加入收藏
brook2010
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-4-28
收藏
 问题点数:0 回复次数:9 
关于在对话框里输出一个数组,恳求解答
首先声明该问题纯粹属于MFC基础问题 和图象无关 我前面的问题背景只是阐述情况 本人第一次做MFC 

[bo]问题背景: [/bo]
在一个图象边界跟踪的算法里
有一个整型变量BeginDriect 表示寻找边界点的方向 (8方向 值0~7)
有一循环用来寻找边界点 此时BeginDriect不断变化 直到Findpoint=True(找到一个边界点) 希望此时把BeginDriect输出出来,然后再继续寻找 如此循环(在Dos只需要在这个循环里printf("%d",BeginDriect);就可实现)

[bo]目标: [/bo]
现在想把这一串BeginDriect的值 在这个项目的某个Dialog里的edit框里显示出来(不用edit控件也可以)
(结果如:00001111112203330001....)这样

[bo]我所做的: [/bo]
为了保存BeginDriect的值 我定义了一个数组Lcode  (数组定义为全局变量,并在Dialog里通过temp转换)
然后在Dialog里调用了这个数组 然后根据类引导 建立了输出文本来输出这个数组 可是发现输出的要不只有一个数据 要不就是乱码

[bo]部分代码: [/bo]
在Dialog类中
CDialogCode::CDialogCode(CWnd* pParent /*=NULL*/)
: CDialog(CDialogCode::IDD, pParent)
[bo]{
char temp[200];
    for(int i=0, j=0; i <100; i++,j++)
{
temp[j] = Lcode[i];
temp[++j] = ',';
} [/bo]
//{{AFX_DATA_INIT(CDialogCode)
[bo]m_num = temp; [/bo]
//}}AFX_DATA_INIT
}


void CDialogCode::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDialogCode)
[bo]DDX_Text(pDX, IDC_EDIT1, m_num); [/bo]
//}}AFX_DATA_MAP
}

在图象跟踪边界算法中:
int n=0;
while(!bFindStartPoint)
{
bFindPoint = false;
while(!bFindPoint)
{
//沿扫描方向查看一个像素
lpSrc = (char *)lpDIBBits + lLineBytes * ( CurrentPoint.Height + Direction[BeginDirect][1])
+ (CurrentPoint.Width + Direction[BeginDirect][0]);
pixel = (unsigned char)*lpSrc;
if(pixel == 0)
{
bFindPoint = true;
CurrentPoint.Height = CurrentPoint.Height + Direction[BeginDirect][1];
CurrentPoint.Width = CurrentPoint.Width + Direction[BeginDirect][0];
if(CurrentPoint.Height == StartPoint.Height && CurrentPoint.Width == StartPoint.Width)
{
bFindStartPoint = true;
[bo][un]Lcode[n]=BeginDirect[i];//此时输出BeginDirect
n++; [/un][/bo]
}
lpDst = (char *)lpNewDIBBits + lLineBytes * CurrentPoint.Height + CurrentPoint.Width;
*lpDst = (unsigned char)0;
//扫描的方向逆时针旋转两格
BeginDirect--;
if(BeginDirect == -1)
BeginDirect = 7;
BeginDirect--;
if(BeginDirect == -1)
BeginDirect = 7;
}
else
{
//扫描方向顺时针旋转一格
BeginDirect++;
if(BeginDirect == 8)
BeginDirect = 0;

}

}
}

[[it] 本帖最后由 brook2010 于 2008-4-28 22:22 编辑 [/it]]
搜索更多相关主题的帖子: 对话框 恳求 输出 解答 
2008-04-28 22:21
brook2010
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-4-28
收藏
得分:0 
希望高手能回复 提点一下也行
QQ330456749
2008-04-28 22:24
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你把文本框变量映射成string类型的...然后输出呢?

学习需要安静。。海盗要重新来过。。
2008-04-28 22:27
brook2010
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-4-28
收藏
得分:0 
我定义的是string型噢
    CString    m_num;
是这个意思吗
2008-04-28 22:31
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
恩..然后输出就好..以前写记事本是这样搞的...

学习需要安静。。海盗要重新来过。。
2008-04-28 22:36
brook2010
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-4-28
收藏
得分:0 
不行哦 我本来就是类向导里定义的CString型的 m_num
会不会和EDIT框有关系呢?
对话框里还有什么输出变量的方法大哥介绍下我看看..我第一次用MFC
模仿着一个编辑框做的输出 才加了EDIT控件
2008-04-28 22:38
brook2010
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-4-28
收藏
得分:0 
我加了一个EDIT框 然后类向导里加了一个String型的m_num 它就出来了
m_num=_T("");
DDX_Text(pDX, IDC_EDIT1, m_num);
然后我接把这个数组赋给了m_num

其他有什么输出方法吗
2008-04-28 22:44
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我是用加号连接的....不是赋地质..类型之间不一样

学习需要安静。。海盗要重新来过。。
2008-04-28 22:50
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我刚才试过应该是可以的

学习需要安静。。海盗要重新来过。。
2008-04-28 23:19
brook2010
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-4-28
收藏
得分:0 
我发现我的问题可能是 数组转字符串时候有问题
能不能帮我写下怎么把原本一个保存了整型的数组转成字符串?
2008-04-29 10:00
快速回复:关于在对话框里输出一个数组,恳求解答
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030555 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved