GetForegroundWindow这个函数有点问题,但是当我的窗口在最前面时它有时返回其他窗口的句柄,而有时候当我的窗口不是在最前面时它又返回我的窗口
解决方案 »
- 关于记录鼠标位置的程序,请大家帮一下忙啊?
- 【纠结死了】10MB的数据,阻塞TCP总收的数据总会出错
- 头疼啊,moving in memory, 64bit DLL的秘密?
- 如何判断资源定义文件中对话框DIALOG类型还是DIALOGEX类型的?
- 50分求mfc vc++ 写的 用odbc'访问access 数据库的源代码 只需最简单的数据库操作功能,请发邮箱。
- 大家帮忙看看,这个函数为什么只能显示第一次调用的图片呢?
- 请教为什么我在画图时出现乱屏现象?
- 请问:怎样向资源管理器的右边添加图标呀?谢谢
- MFC单文档中使用对话框绘制实时曲线
- 如何动态添加菜单
- 三维重建 VTK 那些基本objects的使用说明有吗??
- 如何将一个字符串以十六进制方式显示
把你想要隐藏或显示的主窗口的句柄hWnd 预先保存。然后需要显示时setactivewindow(hWnd)
,所作操作都用hWnd 来完成。
{
ShowWindow(SW_MAXSIZE);
SetForegroundWindow(hWnd);
}
else if(IsWindowVisable(hWnd) || !IsIconic(hWnd))
ShowWindow(SW_MINISIZE);凭记忆写的,可能有错
=========================================
请参考我的代码:(与金山词ba 托盘图标一样的效果)static BOOL g_bWndState=FALSE;//FALSE 窗口未显示 TRUE 窗口显示在最前LRESULT CAdslTDlg::OnNIClick(WPARAM wParam,LPARAM lParam)//托盘图标点击消息处理函数
{
if(wParam == IDI_NOTIFYICON2)//按的是本程序的图标
{
if(lParam == WM_LBUTTONDOWN)//鼠标左键铵下
{
if(!g_bWndState){ //如果窗口未显示
this->ShowWindow(SW_SHOW);//显示窗口,自动显示在最前
this->UpdateWindow();
g_bWndState = TRUE;
}
else{ 如果窗口是显示状态
this->ShowWindow(SW_HIDE);//隐藏窗口,
g_bWndState = FALSE;
}
}
}
return 0;
}
////楼主记着给分哦。托盘图标会处理吧?如果不行,我有个现成的小程序。
StarManJhh你说错了,当主体窗口不再最前面时,应该将主体窗口置在最前面,而不是隐藏!!