读书人

Window API怎么显示隐藏窗体(ShowWin

发布时间: 2012-07-03 13:37:43 作者: rapoo

Window API如何显示隐藏窗体(ShowWindowAsync/ShowWindow)
我在程序里做了 一台计算机只允许一个实例

[DllImport("User32.dll")]
//返回值:如果窗口原来可见,返回值为非零;如果函数原来被隐藏,返回值为零。
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);


//API 常定
private const int SW_HIDE = 0;
private const int SW_NORMAL = 1; //正常弹出窗体
private const int SW_MAXIMIZE = 3; //最大化弹出窗体
private const int SW_SHOWNOACTIVATE = 4;
private const int SW_SHOW = 5;
private const int SW_MINIMIZE = 6;
private const int SW_RESTORE = 9;
private const int SW_SHOWDEFAULT = 10;

ShowWindowAsync(instance.MainWindowHandle, SW_RESTORE);
SetForegroundWindow(instance.MainWindowHandle);

我发现当我程序最小化到托盘以后,instance.MainWindowHandle就为null了,所以窗体show不出来了。
这个里面的参数我都试过了,哪个都不好使。难道隐藏窗体之后就无法用API 弹出窗体了吗?
希望真相帝给予支持。

[解决办法]
可以尝试用FindWindow获取窗体句柄,然后再显示

读书人网 >C#

热点推荐