【发布时间】:2012-10-11 03:32:52
【问题描述】:
我正在尝试创建一个无边框的控制台窗口。
我能够将 windowstyle 设置为 WS_POPUP,它删除了边框,但有一些小故障;
似乎控制台窗口上的某些部分没有被重绘,或者类似的东西,但我尝试在整个窗口上使用 InvalidateRect() 和其他重绘函数,但它们没有似乎工作。
有人建议使用 SetWindowPos()(带有 SWP_FRAMECHANGED),但这也无济于事。
我一直在摆弄这个问题有一段时间了,我很确定这与客户区域没有正确绘制有关(不要引用我的话)
当我第一次向下滚动然后向上滚动时,底部的故障部分也会变成黑色/透明,但我的程序中的文本有时不会显示在它下面,据我所知,这表明它没有背景,所以它有一种“变色龙”的效果。
有什么想法吗?
【问题讨论】:
-
控制台通常不能很好地处理这种事情。
-
我可以看到。但这并没有真正帮助我。
-
您的任务(创建无边框控制台窗口)看起来像锻炼。不?我的意思是,这个问题的原因是什么。
-
你确定,你需要控制台窗口,而不是 GUI?您可以绘制任何东西并使用 GUI 窗口的任何窗口样式;-) 至于您的问题,如果您真的需要控制台 - 尝试使用
SetWindowRgn而不是操纵 wnd 样式。 -
与 Windows 想要的工作方式作斗争通常比它的价值更麻烦。
标签: c++ windows winapi console cmd