
MFC高手请进
我用ShowWindow()函数来实现通过一个对话框来打开qq窗口,用FindWindow()来返回qq的窗口句柄;实现代码如下:voidCQQopenDlg::OnBu...
我用ShowWindow()函数来实现通过一个对话框来打开qq窗口,用FindWindow()来返回qq的窗口句柄;实现代码如下:
void CQQopenDlg::OnButton1() //这个是对话框一个按钮的响应函数。
{
// TODO: Add your control notification handler code here
if(!::ShowWindow(::FindWindow(NULL,"QQ2011"),SW_SHOW))
MessageBox("显示qq窗口");
}
结果在第一次运行的时候是可以实现目的的,可是到了以后就一直打不开窗口了。而我改变了一下:
void CQQopenDlg::OnButton1()
{
// TODO: Add your control notification handler code here
if(!::ShowWindow(::FindWindow("TXGuiFoundation",NULL),SW_SHOW))
MessageBox("显示qq窗口");
}
"TXGuiFoundation"是qq窗口的类名还是不可以。而我又改变了一下
void CQQopenDlg::OnButton1()
{
// TODO: Add your control notification handler code here
if(!::ShowWindow(::FindWindow("shell_TrayWnd",NULL),SW_HIDE))
MessageBox("显示操作系统任务栏操作成功");
}
则是可以的。这是为啥! 展开
void CQQopenDlg::OnButton1() //这个是对话框一个按钮的响应函数。
{
// TODO: Add your control notification handler code here
if(!::ShowWindow(::FindWindow(NULL,"QQ2011"),SW_SHOW))
MessageBox("显示qq窗口");
}
结果在第一次运行的时候是可以实现目的的,可是到了以后就一直打不开窗口了。而我改变了一下:
void CQQopenDlg::OnButton1()
{
// TODO: Add your control notification handler code here
if(!::ShowWindow(::FindWindow("TXGuiFoundation",NULL),SW_SHOW))
MessageBox("显示qq窗口");
}
"TXGuiFoundation"是qq窗口的类名还是不可以。而我又改变了一下
void CQQopenDlg::OnButton1()
{
// TODO: Add your control notification handler code here
if(!::ShowWindow(::FindWindow("shell_TrayWnd",NULL),SW_HIDE))
MessageBox("显示操作系统任务栏操作成功");
}
则是可以的。这是为啥! 展开
展开全部
应该是这样理解的
只有在隐藏的情况下,也就是主窗体不可见的时候调用才有效,
已经可见,在此调用,就会出现错误,想想,已经可见,再次调用这个函数意义就没了,
前两个应该可以调用成功,在窗体不可见的时候都会成功,
最后一个为什么成功:
因为它实际也就是隐藏主窗口,其实我觉得,得大气点,细节的考虑,必要的时候采用,
觉得你还是多抓紧时间学习其他吧!!
只有在隐藏的情况下,也就是主窗体不可见的时候调用才有效,
已经可见,在此调用,就会出现错误,想想,已经可见,再次调用这个函数意义就没了,
前两个应该可以调用成功,在窗体不可见的时候都会成功,
最后一个为什么成功:
因为它实际也就是隐藏主窗口,其实我觉得,得大气点,细节的考虑,必要的时候采用,
觉得你还是多抓紧时间学习其他吧!!

2023-06-12 广告
单片机,单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
我用你的第一份代码
是可以使最小化的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窗口停靠在边上隐藏到桌面外面是不能显示的.
//下面是改进后的,还是有点问题,不过可以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
如果是后者,QQ窗口已经显示了,返回值为真,不会再调用messagebox
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询