GUI程序创建console窗口问题
我现在已经可以通过AllocConsole创建console窗口,并且用WriteConsole向窗口中写入信息。但是我发现,如果我用鼠标直接关闭console窗口,我的主程序也会被关闭。
我的问题是:
1)如何在console窗口被人为关闭的情况下避免主程序被关闭?
2)能否在主程序中截获关闭console窗口的消息,并控制该操作是否继续(让用户确认是否确定关闭)?
3)这个console窗口只能输出信息,如何允许用户在console窗口中输入信息并能在主程序中获得?
问题点数:100、回复次数:7Top
1 楼vcleaner(我没当大哥很久了.......)回复于 2005-01-07 09:35:18 得分 5
这个问题应该很难,呵呵,也许这又是一个Windows未公开的消息!AllocConsole没有返回任何东西,所以比较麻烦。你可以尝试一下在主程序中截获一下一些常用的关闭的消息,如:WM_CLOSE/WM_QUIT等等。呵呵,然后设置一个标志位,如果是你自己关闭主程序就将其设为真,在PreTranslageMessage中让其按常规处理,否则返回!Top
2 楼xhenry()回复于 2005-01-07 09:44:04 得分 0
就算是不能截获关闭console窗口的消息,我也不明白为什么关闭console窗口会把我的主程序也给关闭了?Top
3 楼NowCan(城市浪人)回复于 2005-01-07 12:38:46 得分 5
呵呵,同样的问题。我以前研究了半天,没结果。Top
4 楼whoo(谁)回复于 2005-01-08 10:00:46 得分 0
SetConsoleCtrlHandler
HandlerRoutine
看看他的说明,应该可以解决你的问题。
〉〉Initially, this list contains only a default handler function that calls ExitProcess.
这一段应该就是主程序被关闭的原因吧。Top
5 楼whoo(谁)回复于 2005-01-08 10:02:36 得分 70
至于输入信息,肯定是没问题的。不过我没试过,看看这个地说明吧:
GetStdHandleTop
6 楼dandycheung(珠穆朗玛)回复于 2005-01-08 10:23:12 得分 20
3) 使用 SetConsoleMode() APITop
7 楼dandycheung(珠穆朗玛)回复于 2005-01-08 10:51:31 得分 0
http://dslweb.nwnexus.com/~ast/dload/guicon.htmTop




