ShowWindow虽然使用简单,但之所以要为它写一篇文章,是因为在做一个非模式对话框是,非模对话框显示的时候抢夺了其顶级框架窗口的焦点(标题栏变暗)。我如何让我的非模对话框在显示的时候不抢夺框架窗口的焦点呢?
使用SW_SHOWNA的显示方式。
函数声明如下:
WINUSERAPI
BOOL
WINAPI
ShowWindow(
__in HWND hWnd,
__in int nCmdShow);
hWnd是窗口的句柄。
nCmdShow是窗口显示的状态。可能设置的值如下:
SW_FORCEMINIMIZE是强制窗口最小化,
主要使用在非窗口主线程的其它线程来操作。
SW_HIDE是显示窗口为隐藏状态。
SW_MAXIMIZE是显示窗口为最大化。
SW_MINIMIZE是显示窗口为最小化。
SW_RESTORE是从任务里恢复窗口显示。
SW_SHOW是激活窗口为当前窗口,并且显示为当前的大小和位置。
SW_SHOWDEFAULT是创建进程时显示窗口的值。
SW_SHOWMAXIMIZED是激活窗口为当前窗口,并且显示最大化。
SW_SHOWMINIMIZED是激活窗口为当前窗口,并且显示最小化。
SW_SHOWMINNOACTIVE是显示窗口为最小化,但不激活它作为当前窗口。
SW_SHOWNA是显示为当前的大小和位置,但不激活它作为当前窗口。
SW_SHOWNOACTIVATE是显示当前窗口,但不激活它作为当前窗口。
SW_SHOWNORMAL是显示当前窗口,但窗口是最小化或
最大化时会恢复窗口为原来的大小和位置。
评论