简述
通过以下两个函数来实现窗口的隐藏效果。不仅仅只用于控制台窗口,其他的也可以。(代码在底部)
FindWindow函数
功能
FindWindow函数的功能是获取一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。另外,这个函数不查找子窗口,而且在查找时不区分大小写
函数原型
头文件是windows.h
HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);
参数
- IpClassName
指向一个以NULL字符结尾的、用来指定类名的字符串,或一个可以确定类名字符串的原子。如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过GlobalAddAtom函数创建好的全局原子。这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。可以简单的理解为窗口的类名
如果该参数为NULL时,将会寻找任何与lpWindowName参数匹配的窗口。 - Ipwindowname
指向一个以NULL字符结尾的、用来指定窗口名(即窗口标题)的字符串。如果此参数为NULL,则匹配所有窗口名。
注:在搜索的时候两个参数不一定都要知道,但至少知道其一。
返回值
如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。否则返回值为 NULL 。
ShowWindow函数
功能
设置指定窗口的显示状态。
函数原型
头文件是windows.h
BOOL ShowWindow(HWND hWnd, int nCmdShow)
参数
-
hWnd
指定窗口的句柄 -
nCmdShow
指示窗口如何显示。如果发送应用程序的程序提供了STARTUPINFO结构,则应用程序第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。
该参数可以是下表之一
代号 | 含义 | nCmdShow值 |
---|---|---|
SW_HIDE | 隐藏窗口并激活其他窗口 | 0 |
SW_MAXIMIZE | 最大化指定窗口 | 3 |
SW_MINIMIZE | 最小化指定窗口 | 6 |
SW_RESTORE | 激活并限制窗口,如果窗口最大化或最小化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志 | 9 |
SW_SHOW | 在窗口原来的位置以原来的尺寸激活和显示窗口 | 5 |
SW_SHOWDEFAULT | 以STARTUPINFO结构中指定的SW_FLAG标志设定显示状态 | 10 |
SW_SHOWMINIMIZED | 激活窗口并将其最小化 | 2 |
SW_SHOWMAXIMIZED | 激活窗口并将其最大化 | 3 |
SW_SHOWMINNOACTIVE | 窗口最小化,激活窗口仍然维持激活状态 | 7 |
SW_SHOWNA | 以窗口原来的状态显示窗口。激活窗口仍然维持激活状态 | 8 |
SW_SHOWNOACTIVATE | 以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态 | 4 |
SW_SHOWNORMAL | 激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志 | 1 |
返回值
如果窗口之前可见,则返回值为非零。如果窗口之前被隐藏,则返回值为零。
示例
#include<windows.h>
int main()
{
HWND hwnd;
hwnd=FindWindow("ConsoleWindowClass",NULL);
if(hwnd)
{
ShowWindow(hwnd,SW_HIDE);//设置指定窗口的显示状态
}
MessageBox(NULL,"控制台已隐藏","提示",MB_OK);
system("pause");
return 0;
}
小提示:控制台的窗口被隐藏了,就得在任务管理器里面把它关掉,不然就不能再次运行了