+ -
当前位置:首页 → 问答吧 → 关于输入文字和重绘

关于输入文字和重绘

时间:2011-12-12

来源:互联网

我刚开始学习MFC。现在再做一个:在鼠标点击的地方记录x,y。然后在那里保存输入的字符进用CString定义的变量中,按回车会清空之前数组然后换行。最后用TextOut输出到那个位置;每次重新点击都会先清空之前的数组。

后来发现移动窗口,文字就消失了。才知道有“重绘”。

现在想请问一下,我如何才能把输入的文字和坐标动态的保存起来,然后在OnDraw中动态输出出来,而不会发生越界之类的错误。
并且我可以在屏幕的很多地方输出多条文字。
有没有相关的库函数,我该怎么使用它。先谢谢了~

作者: z364153683   发布时间: 2011-12-12

555555555555555555

作者: lumingming   发布时间: 2011-12-12

你这样好了,定义一个结构,包含x和y坐标和一个CString字符串。然后窗口定义一个该结构的指针数组成员变量。

点击的时候新建一个这样的结构体,保存好点击的坐标,将这个结构体放入数组内;等你输入好文字后,保存到最后一个通过点击建立的结构的CString内。OnDraw函数只需要遍历这个数组,用每个结构的文字和坐标TextOut出来。

还有就是新建变量的时候用new,将结构的指针放入数组。再窗口析构或者其他你需要销毁数据的地方,遍历删除这些对象。

每次使用数组的元素时,记得要检查指针是否为空。

库函数应该是没有……

作者: dream0411   发布时间: 2011-12-12