对话框的收缩与扩展问题

我用VC6的基于对话框的.exe来来实现对话框的收缩和扩展(其实就是改变一下对话框的大小)。在CMyDlg类中增加两个CRect类的成员变量rectlarge和rectsmall,分别保存收缩后河扩展后的窗口的大小,在BOOL CMyDlg::OnInitDialog()中对rectlarge进行初始化。现在存在的问题是:在CMyDlg类中调用GetWindowRect(&rectlarge)函数后,rectlarge.top和rectlarge.left都为0,这样虽然最后也能实现对话框的收缩和扩展,但对话框一下子就跑到屏幕左上角了,后面的
if(m_sta==FALSE)
{

    SetWindowPos(NULL,rectsmall.left,rectsmall.top ,rectsmall.Width(),rectsmall.Height(),SWP_NOZORDER|SWP_NOMOVE);
    m_sta=TRUE;

}
else 
{
    SetWindowPos(NULL,rectlarge.left,rectlarge.top ,rectlarge.Width(),rectlarge.Height(),SWP_NOZORDER|SWP_NOMOVE);
    m_sta=FALSE;

}

}
这是什么原因呢?

你可以设置窗口大小后,用CenterWindow来居中窗口。

不要用SetWindowPos,用MoveWindow改变大小和位置。

你测试一下你的rectsmall.left,rectsmall.top这些值对不对。