GUI程序创建console窗口问题

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

我的问题是:
1)如何在console窗口被人为关闭的情况下避免主程序被关闭?
2)能否在主程序中截获关闭console窗口的消息,并控制该操作是否继续(让用户确认是否确定关闭)?
3)这个console窗口只能输出信息,如何允许用户在console窗口中输入信息并能在主程序中获得?
...全文
212 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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中让其按常规处理,否则返回!

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧