GUI程序创建console窗口问题

xhenry 2005-01-07 09:27:38
我现在已经可以通过AllocConsole创建console窗口,并且用WriteConsole向窗口中写入信息。但是我发现,如果我用鼠标直接关闭console窗口,我的主程序也会被关闭。

我的问题是:
1)如何在console窗口被人为关闭的情况下避免主程序被关闭?
2)能否在主程序中截获关闭console窗口的消息,并控制该操作是否继续(让用户确认是否确定关闭)?
3)这个console窗口只能输出信息,如何允许用户在console窗口中输入信息并能在主程序中获得?
...全文
166 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dandycheung 2005-01-08
http://dslweb.nwnexus.com/~ast/dload/guicon.htm
回复
dandycheung 2005-01-08
3) 使用 SetConsoleMode() API
回复
whoo 2005-01-08
至于输入信息,肯定是没问题的。不过我没试过,看看这个地说明吧:
GetStdHandle
回复
whoo 2005-01-08
SetConsoleCtrlHandler

HandlerRoutine

看看他的说明,应该可以解决你的问题。

〉〉Initially, this list contains only a default handler function that calls ExitProcess.

这一段应该就是主程序被关闭的原因吧。
回复
NowCan 2005-01-07
呵呵,同样的问题。我以前研究了半天,没结果。
回复
xhenry 2005-01-07
就算是不能截获关闭console窗口的消息,我也不明白为什么关闭console窗口会把我的主程序也给关闭了?
回复
老夏Max 2005-01-07
这个问题应该很难,呵呵,也许这又是一个Windows未公开的消息!AllocConsole没有返回任何东西,所以比较麻烦。你可以尝试一下在主程序中截获一下一些常用的关闭的消息,如:WM_CLOSE/WM_QUIT等等。呵呵,然后设置一个标志位,如果是你自己关闭主程序就将其设为真,在PreTranslageMessage中让其按常规处理,否则返回!
回复
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2005-01-07 09:27
社区公告
暂无公告