首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

刚学MFC,求教个有关问题,多谢各位先

2012-01-19 
刚学MFC,求教个问题,谢谢各位先,1.我创建了一个SDI程序,使用CEditView类,请问怎么在框架中得到View的内容,

刚学MFC,求教个问题,谢谢各位先,
1.我创建了一个SDI程序,使用CEditView类,请问怎么在框架中得到View的内容,我是这样做的
char   str[MAX_BUF_SIZE];
CLinear_modleView   *pView=(CLinear_modleView*)GetActiveView();
pView-> GetEditCtrl   ().GetWindowText   (str,pView-> GetEditCtrl().GetWindowTextLength());
可是TextOut的时候,发现输出的字符是去掉空格还有换行的。请问正确应该怎么解决?
2.同样是上面的程序,因为我要使用自己已写好的一个矩阵类,直接在文件树那里导入了这个矩阵类.cpp和.h,stdafx.h里也include了头文件,可是编译的时候出错:
g:\linear_modle\matrix.h(24)   :   error   C2629:   unexpected   'class   CTokenizer   ( '
g:\linear_modle\matrix.h(24)   :   error   C2334:   unexpected   token(s)   preceding   ': ';   skipping   apparent   function   body
g:\linear_modle\matrix.h(28)   :   error   C2143:   syntax   error   :   missing   ', '   before   '& '
g:\linear_modle\matrix.h(28)   :   error   C2059:   syntax   error   :   '& '     ..........
(以下省略,有60多个错误)。
但是如果我创建的程序的View是选择CView而不是CEditView,用同样的方法导入矩阵类就一切正常。请问怎么解决?

=================
100分不知道够不够?

[解决办法]
1 TextOut是不处理tab和回车换行的,用DrawText多行输出可以。
不过一般数据在Doc里面处理。
2 似乎是语法问题,可能有不规范的地方,仔细检查。
[解决办法]
要考虑多行的话,可以按行取
int i, nLineCount = pView-> GetEditCtrl ().GetLineCount();
CString strText, strLine;
for (i=0;i < nLineCount;i++)
{
// length of line i:
int len = pmyEdit-> LineLength(pmyEdit-> LineIndex(i));
pmyEdit-> GetLine(i, strText.GetBuffer(len), len);
strText.ReleaseBuffer(len);
strLine.Format(TEXT( "line %d: '%s '\n "), i, strText);
afxMessageBox(strLine);
}

第二个问题,看看是不是头文件里面定义的一些东西和系统有冲突

热点排行