应该是这样理解的
只有在隐藏的情况下,也就是主窗体不可见的时候调用才有效,
已经可见,在此调用,就会出现错误,想想,已经可见,再次调用这个函数意义就没了,
前两个应该可以调用成功,在窗体不可见的时候都会成功,
最后一个为什么成功:
因为它实际也就是隐藏主窗口,其实我觉得,得大气点,细节的考虑,必要的时候采用,
觉得你还是多抓紧时间学习其他吧!!
我用你的第一份代码
是可以使最小化的qq窗口显示出来,不存在你说的第一次第二次的问题
如果qq窗口停靠在边上隐藏到桌面外面是不能显示的.
//下面是改进后的,还是有点问题,不过可以show出来了
void CDlgTestDlg::OnBnClickedButton1()
{
HWND hWnd = ::FindWindow(NULL,L"QQ2011");
if(hWnd)
{
if (::IsWindowVisible(hWnd))//是否已经显示
{//如果已经显示了,移动窗口位置到200,200//坐标你可以自己调整
if(::SetWindowPos(hWnd, NULL, 200, 200, 0, 0, SWP_NOSIZE | SWP_SHOWWINDOW | SWP_NOZORDER))
{
MessageBox(L"显示qq窗口");
}
}
else
{//如果隐藏,把它show出来
if(::ShowWindow(hWnd, SW_SHOW))
{
MessageBox(L"显示qq窗口");
}
}
}
}
是打不开QQ窗口?还是弹不出你的对话框?
如果是后者,QQ窗口已经显示了,返回值为真,不会再调用messagebox