颜色支持,控制台应用
2006-07-20 11:38:36 来源:WEB开发网所以,如果你要建立一组合应用,首要问题是:它是一个控制台应用还是一个GUI应用?最初,你可能认为要建立一个控制台应用,以后它还能够作为一个 GUI 程序运行。从来没有谁说过一个控制台应用就不能够创建窗口或处理消息,控制台之所以是控制台,那是因为当控制台不存在时, Windows 会为控制台应用创建一个控制台。但是这里有一个问题,如果你在 Windows 下通过在其资源管理器(Explorer)中双击或快捷方式运行某个控制台应用程序,Windows 将会创建一个控制台,你可以通过调用 FreeConsole 来销毁 这个控制台,但是这个控制台窗口会暂时一闪而过,告诉整个世界你其实并不知道你自己做了什么。
然后,要使它为一个GUI应用。那么你如何把它写到控制台呢?有许多文章解释了怎样重新路由 printf 或 cout 到控制台,但是, 它们都涉及到创建新控制台窗口的问题,不是使用一个当程序是从命令行被启动时已经存在的窗口。即使有某个使用现有控制台的途径,那你又怎么知道你的应用程序是通过 Windows Explorer 还是通过命令提示符调用的呢?
有一个新的函数( Windows XP 使用的)正好可以利用:这个函数是 AttachConsole。 它允许你将程序“绑定”到其它进程的控制台窗口,如果你用了专用的进程 ID:ATTACH_PARENT_CONSOLE,AttachConsole 将绑定到启动你的程序的控制台。太好了,但是有两个问题,第一,AttachConsole 只能在 Windows XP 系统中使用,所以如果你想要你的程序运行在其它版本的 Windows 中,就没那么走运了;第二,AttachConsole 工作并不稳定,你可以写内容到控制台,但是你的程序退出后,命令提示符就乱七八糟了。
简而言之,基于 Windows 的应用程序要么是控制台应用,要么是GUI应用,二者不可兼得。(除非你想写你自己的启动代码,那已非我力所能及)。但是你知道它 是能够做到的,因为我已经告诉你 Visual Studio 能行,到底怎样做呢?
- ››支持 Symbian 平台的开发者只有四分之一
- ››支持电骡视频点播 迅雷泛播放体验
- ››支持Win 7 Vista 不开迅雷接管高速下载
- ››支持换肤功能的窗口实例
- ››支持iPhone的免费VPN:VPN98
- ››支持PDF阅读!美图看看新版试用
- ››支持Windows CE和Android 2.1双系统的Viliv Prime...
- ››支持Flash Windows Mobile 手机全功能浏览器
- ››支持 Wi-Fi MOTO 第9款 Android 手机ME508曝光
- ››支持磁力链接 迅雷发力化解BT下载难题
- ››颜色之黑色、白色和褐色三色混合
- ››支持 Multi-tenancy 的 IBM DB2 Content Manager ...
更多精彩
赞助商链接