qq登陆框的设置(就是下拉的那个网络代理设置)。是怎么实现的,或者类似的实现方法。   单击按钮,在原对话框的基础上,下面像下拉的对话框一样可以弹出来。但是再次单击可以隐藏。
是qq有两个对话框互相调用;还是用一个对话框,单击前是把下面部分的对话框给隐藏了?
或者是用窗口停靠实现的?     第一次问问题,回答原理或者实现方法都可以。但要满足条件。

解决方案 »

  1.   

    它的那个应该是另一个窗口, 平时隐藏, 需要的时候显示出来
    你还可以用MoveWindow函数 来实现动画弹出效果呢
      

  2.   

    一个主对话框,上面有一部分控件初始的时候设置成了不显示,在点按钮的时候才显示出来CXXXDlg::ShowExtraPart(BOOL bShow)
    {
        if(bShow)
        {
             // 隐藏ExtraPart对应的控件
              this->MoveWindow( NORMAL_SIZE + EXTRA_SIZE );
        } else
        {
             // 隐藏ExtraPart对应的控件
             this->MoveWindow( NORMAL_SIZE );
        }
    }CXXXDlg::OnInitDialog()
    {
        ShowExtraPart(FALSE);
    }CXXXDlg::OnBtnShowOrHideExtraPart()
    {
        m_bShowExtraPart = !m_bShowExtraPart;
        ShowExtraPart(bShowExtraPart);
    }
      

  3.   

    楼上的方法可以  也可以用SetWindowPos来实现
    大概实现过程就是 先准备一个大的对话框 中间设个分割条 用来划分对话框要分割的两块区域 分隔条可以用图像控件
    利用GetDlgItem 和GetWindowRect可以确定分隔条以上矩形大小 和 整个对话框大小 单击设置 显示分隔条以上的 再单击显示整个对话框或者准备两个对话框 对设置左消息响应函数 转到另一个对话框