ShowWindow 函数
ShowWindow 用法
ShowWindow(窗口句柄,状态代码);
例如:
ShowWindow(12345,2);//最大化句柄号为12345的窗口,并激活
ShowWindow(FindWindow("ConsoleWindowClass",argv[0]),0);//隐藏当前窗口
如果要查找当前窗口句柄,可以使用:
FindWindow("ConsoleWindowClass",argv[0])
//C,C++,VB等语言有效
ShowWindow 例程
函数模板
ShowWindow(
hWnd: HWND; //要显示的窗口的句柄
nCmdShow: Integer //选项, 参加下表
): BOOL;
nCmdShow参数可选值
SW_HIDE = 0; {完全隐藏,任务栏没图标}
SW_NORMAL =SW_SHOW = 1; {最近的大小和位置显示,并激活}
SW_SHOW = 5; {最近的大小和位置显示,并激活}
SW_SHOWNOACTIVATE = 4; {最近的大小和位置显示,不激活}
SW_SHOWMINIMIZED = 2; {最小化, 激活}
SW_SHOWMAXIMIZED = 3; {最大化, 激活}
SW_MAXIMIZE = 3; {最大化, 不激活}
SW_MINIMIZE = 6; {最小化, 不激活}
SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = 9; {初始的大小和位置显示}
返回值:
如果窗口以前可见,则返回值为非零。如果窗口以前被隐藏,则返回值为零。
删掉窗口按钮防止被误关
让关闭按钮失效
#include <Windows.h>
#include <stdio.h>
void main()
{
DeleteMenu(GetSystemMenu(GetConsoleWindow(), FALSE), SC_CLOSE, MF_BYCOMMAND);
DrawMenuBar(GetConsoleWindow());
// 上面两句也可以换成
// EnableMenuItem(GetSystemMenu(GetConsoleWindow(), FALSE), SC_CLOSE, MF_GRAYED);
printf("关闭按钮按不了了\n");
system("pause");
}
隐藏关闭按钮
#include <Windows.h>
#include <stdio.h>
void main()
{
HWND hwnd = GetConsoleWindow();
LONG Style; //窗口风格
Style = GetWindowLong(hwnd, GWL_STYLE); // 得到窗口风格
Style = Style & ~WS_CAPTION; //去掉标题栏
SetWindowLong(hwnd, GWL_STYLE, Style); //为窗口设置新的风格
printf("关闭按钮不见了\n");
system("pause");
}
隐藏C++控制台窗口方法
方法一:查找窗口并隐藏
#include <windows.h>
int main(int argc,char *argv[])
{
/* 隐藏窗口前执行的代码 */
ShowWindow(FindWindow("ConsoleWindowClass",argv[0]),0); //查找窗口隐藏自身 ..
/* 隐藏窗口后执行的代码 */
return 0;
}
方法二:程序前加入代码
#ifdef _MSC_VER
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
#endif
#include <windows.h>
例如:
#ifdef _MSC_VER
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
#endif
#include <iostream>
#include <windows.h>
using namespace std;
int main(){
cout<<"Hello world!"<<endl;
::MessageBox(NULL , "" , "" , 0); //暂停程序,就可以在任务管理器看这个我们的程序是运行了!
return 0;}
方法三:修改程序入口
建立Win32工程,自己改成WinMain接口
//--------------程序主体运行部分--------------
#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
cout<<"Hello world!"<<endl;
::MessageBox(NULL , "" , "" , 0);
//暂停程序,就可以在任务管理器看这个我们的程序是运行了!
return 0;}
//--------------程序主体运行部分--------------
//--------------修改程序入口代码--------------
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
main();
return 0;
}
//--------------修改程序入口代码--------------