读书人

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

发布时间: 2012-01-19 00:22:28 作者: rapoo

刚学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);
}

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

读书人网 >VC/MFC

热点推荐