MFC showwindow 返回值问题

xiuhao1011 2012-12-05 11:16:59
	CRect rectClient;
CRect rectTrackDlg;
GetClientRect(&rectClient);
ClientToScreen(rectClient);//转换为屏幕坐标
dlg.GetWindowRect(rectTrackDlg);//对话框宽高度
dlg.SetWindowPos(NULL,rectClient.right-rectTrackDlg.right,rectClient.bottom-rectTrackDlg.bottom,0,0,SWP_NOSIZE );//将对话框防止在屏幕左下角

if (Flag)
{
Flag=dlg.ShowWindow(SW_HIDE);
}
else
Flag=dlg.ShowWindow(SW_SHOW);


如上所示代码是使对话框显示或消失的响应函数,但是,响应结果不正确,对话框连续出现了两次,连续消失两次,showwindow的返回值严重不对,在0和24之间切换。这是为什么呀?我在前面OnCreate函数中已经建立了非模态对话框,只是处于隐藏状态。
...全文
344 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaozhiyong110 2012-12-05
  • 打赏
  • 举报
回复
返回的是BOOL值 你管他是24还是1 只有0和非0的区别 窗口当前可见,则返回值为非0。当前被隐藏,返回值为0
xiuhao1011 2012-12-05
  • 打赏
  • 举报
回复
靠,明白了,showwindow的返回值是这样定义的:如果窗口以前可见,则返回值为非零。如果窗口以前被隐藏,则返回值为零。我刚开始理解为当前窗口了。晕。
xiuhao1011 2012-12-05
  • 打赏
  • 举报
回复
上边一个问题知道为什么了。晕,不是宽高度变化,而是对话框位置变了。下边这一句写的不对 dlg.SetWindowPos(NULL,rectClient.right-rectTrackDlg.right,rectClient.bottom-rectTrackDlg.bottom,0,0) 应该减去对话框宽度和高度,而不是减去坐标。晕。
yaozhiyong110 2012-12-05
  • 打赏
  • 举报
回复
引用 2 楼 xiuhao1011 的回复:
引用 1 楼 yaozhiyong110 的回复: 返回的是BOOL值 你管他是24还是1 只有0和非0的区别 窗口当前可见,则返回值为非0。当前被隐藏,返回值为0但是响应结果不对呀,不是出现、消失,而是出现、出现、消失、消失、出现、出现、消失、消失这样循环,出现的位置还会变,在左下角和右上角。不明白这是为什么?
你是调试还是什么情况发现 出现、出现、消失、消失、出现、出现、消失、消失这样循环? 看出来的?
Eleven 2012-12-05
  • 打赏
  • 举报
回复
你上面贴的代码你是放在哪里调用的?
xiuhao1011 2012-12-05
  • 打赏
  • 举报
回复
我调试的时候发现,这一句 dlg.GetWindowRect(rectTrackDlg); 获取的对话框宽度和高度会变,晕,这就是为什么对话框显示的时候位置会动的原因。但是为什么会变呀???? 指点一下吧。
xiuhao1011 2012-12-05
  • 打赏
  • 举报
回复
引用 1 楼 yaozhiyong110 的回复:
返回的是BOOL值 你管他是24还是1 只有0和非0的区别 窗口当前可见,则返回值为非0。当前被隐藏,返回值为0
但是响应结果不对呀,不是出现、消失,而是出现、出现、消失、消失、出现、出现、消失、消失这样循环,出现的位置还会变,在左下角和右上角。不明白这是为什么?

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧