VC6下,生成基于CEditView的工程,想在视图输出字符串,发现这样不行,不知道什么原因。
修改CEditView::OnDraw(CDC pDC)
如下:
CEditView::OnDraw(CDC pDC)
{
pDC->TextOut(0,0,"Hello,world!");
}
结果没有任何输出。
但是在CView::OnDraw(CDC pDC)
中照做就行,有Hello,World!输出。
很奇怪,难道是用别的函数吗?
我想在CEditView的视图区输出字符串,怎么办?
修改CEditView::OnDraw(CDC pDC)
如下:
CEditView::OnDraw(CDC pDC)
{
pDC->TextOut(0,0,"Hello,world!");
}
结果没有任何输出。
但是在CView::OnDraw(CDC pDC)
中照做就行,有Hello,World!输出。
很奇怪,难道是用别的函数吗?
我想在CEditView的视图区输出字符串,怎么办?
解决方案 »
- VC 6中,建立类向导-》添加一个新类,我想这个新类继承自CControlBar,但是在BASE CLASS 列表中却没有 CControlBar
- 怎样copy一个char型的字符串到wchar_t型的字符串中?
- win2003系统调用GetWindowsDirectory的问题
- 如何在XP下实现用新程序更新运行的程序
- 简单问题!谢谢帮忙!
- 如何保存客户端POST过来的文件,任何文件~
- C++与股票分析软件
- 大哥请帮忙!!
- 急急急!!!关于重载CComboBox的问题(定制自己的CMyComboBox)
- VC主对话框怎么应用子对话框中的TeeChart控件?
- 怎样判断一个目录是否存在,若不存在怎样以此路径依次建立目录?
- VC++6.0 环境编译这么简单的console程序也不能运行!?
它在刷新屏幕时不像CView那样调用的是OnDraw()。
所以在OnDraw()写的输出字符串也就无效了。
{
CPaintDC dc(this); // device context for painting
dc.TextOut(200,200,"ddd");
}
CEditviewDoc* pDoc = GetDocument();
如果你的文檔事txt的話,得到文檔,把裏面的東西讀出來就可以了.
改写document的OnNewDocument():
BOOL CMyDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE; // TODO: add reinitialization code here
// (SDI documents will reuse this document)
((CEditView*)m_viewList.GetHead())->SetWindowText("Hello World!\r\n");
return TRUE;}
CMyView : public CEditView
{
.......
public:
void DisplayString(LPCTSTR lpstring);
}CMyView :: DisplayString(LPCTSTR lpstring)
{
int len = GetWindowTextLength();
GetEditCtrl().SetSel(len,len);
GetEditCtrl().ReplaceSel(lpMsgStr);
}在适当的时候调用这个成员函数就可以了。如在document的OnNewDocument()中,进行调用:
BOOL CMyDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE; // TODO: add reinitialization code here
// (SDI documents will reuse this document)
((CMyView*)m_viewList.GetHead())->DisplayString("Hello World!\r\n");
return TRUE;}注意不能在OnDraw和OnPaint中调用。否则,会显示出很多的"Hello world!"。
{
int len = GetWindowTextLength();
GetEditCtrl().SetSel(len,len);
GetEditCtrl().ReplaceSel(lpstring);
}