文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>(转载)Win32窗口程序显示Console

(转载)Win32窗口程序显示Console

时间:2011-01-08  来源:轻装旅行

设置程这样就可以了。我在一个按钮上执行以上代码,调用成功。不过还是会有意外的(具体是什么不说了,不具有一般性)。然后关闭控制台只要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\"")

class KtConsole 
{
public:
KtConsole ( )
{
AllocConsole( );
freopen(
"CONOUT$","w+t",stdout); //重定向标准输出
freopen("CONIN$","r+t",stdin); //重定向标准输入

GetConsoleTitle(buffer,
80);
HWND hwnd
= FindWindow(NULL, buffer);
HMENU hmenu
= GetSystemMenu(hwnd, FALSE);
RemoveMenu(hmenu, SC_CLOSE,MF_BYCOMMAND);
}

~KtConsole ( )
{
fclose(stdout);
fclose(stdin);
FreeConsole();
}
};

 

出处:http://blog.csdn.net/yeah2000/archive/2010/12/12/6071364.aspx

相关阅读 更多 +
排行榜 更多 +
鸡生化精英安卓版

鸡生化精英安卓版

飞行射击 下载
光头火柴人安卓版

光头火柴人安卓版

飞行射击 下载
轨道射击安卓版

轨道射击安卓版

飞行射击 下载