C++写Win32窗口应用程序(非控制台)如何清屏?

C++写Win32窗口应用程序(非控制台)如何清屏?,第1张

//控制台应用程序, 请用如下代码

#include <stdlib.h>//必须包含stdlib.h头文件

int main()

{

system("cls")//利用DOS命令 cls 完成清屏

return 0

}

//PS: 如果是Windows窗口程序,在MFC中覆盖

//CWnd::OnEraseBkgndw函数

//如果用SDK直接写, 请处理WM_ERASEBKGND消息

我可以理解为你要自绘一个编辑框吗?

自绘编辑框 重要就是对消息的处理。

插入符:首先插入符是在首位的,接收用户各种 *** 作,移动插入符消息,鼠标改变插入符位置消息。截取这些消息以后,根据编辑框大小计算插入符重绘位置。另外获取文字间距与文字高度很必要。

选中文字:截取鼠标按下的消息与d起的消息,并读取其中插入符起始到结束的跨越的文本。对文本画蓝色背景,若此时检测到复制或剪切消息 就从内存中读出该段文本。

滚动条:首先自绘一个滚动条,申请内存记录此时首行位置。一旦得到鼠标移动滚动条消息就按滚动条长度计算出向上或向下移动多少行。

有点复杂 -3- 真的想做估计也要做一两天。

就是无效到有效的过程

当窗口无效时,BeginPaint()调用令整个显示区域有效,擦拭背景等工作,并传回句柄,可以用这个句柄,EndPaint释放设备上下文句柄,使之不再有效。

可以在 BeginPaint和EndPaint之间添加你的代码!如输出文字TEXTOUT() 例在程序窗口中输出“你好”两字,那么当窗口拖动大小或者被其他窗口挡住就变无效了(这两个字“你好”就没有了)那么就会传个WM_PAINT消息,然后执行里面的代码,这样不至于你改变窗口大小或者被遮住而使文字没有了!! 自己可以试试代码

哎,打累死了!!希望能帮到你。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11875846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存