返回> 网站首页 

Win32窗口程序显示Console

yoours2010-11-18 09:48:39 阅读 1172

简介一边听听音乐,一边写写文章。

AllocConsole(); 
freopen("CONOUT$", "w+t", stdout);  
freopen("CONIN$", "r+t", stdin);

设置程这样就可以了。我在一个按钮上执行以上代码,调用成功。不过还是会有意外的(具体是什么不说了,不具有一般性)。然后关闭控制台只要FreeConsole()就可以了。注意直接关闭控制台是会连主窗口一起关闭的(两者一心同体~)。可以这样使用户不能手动关闭控制台,在上面代码两个fopen之后写上:
GetConsoleTitle(buffer, 80); 
HWND hwnd = FindWindow(NULL, buffer); 
HMENU hmenu = GetSystemMenu(hwnd, FALSE); 
RemoveMenu(hmenu, SC_CLOSE,MF_BYCOMMAND);

这样就通过FindWindow以控制台标题为线索能找到该控制台,diable它的关闭按钮了。当然,你不能总让用户对着这个控制台无法关闭,人家会怒的。可以设定一个按钮或按键等等调用FreeConsole()。

无DOS窗口的控制台程序
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 
int main(int argc, char* argv[])

有DOS窗口的控制台程序
#pragma comment(linker, "/subsystem:\"CONSOLE\" /entry:\"WinMainCRTStartup\"")
微信小程序扫码登陆

文章评论

1172人参与,0条评论