WEB开发网
开发学院软件开发VC 如何有效地使用对话框 阅读

如何有效地使用对话框

 2010-07-01 20:43:00 来源:WEB开发网   
核心提示:5. 如何动态放大/缩小对话框还是可以用SetWindowPos或MoveWindow来实现它,void CTest_deleteDlg::OnMakeSmall(){SetWindowPos(NULL,0,0,200,200,SWP_NOZORDER|SWP_NOMOVE);}void CTest_deleteDlg

5. 如何动态放大/缩小对话框

还是可以用SetWindowPos或MoveWindow来实现它。

void CTest_deleteDlg::OnMakeSmall()
{
  SetWindowPos(NULL,0,0,200,200,SWP_NOZORDER|SWP_NOMOVE);
}
void CTest_deleteDlg::OnExpand()
{
  SetWindowPos(NULL,0,0,500,300,SWP_NOZORDER|SWP_NOMOVE);
}

或:

//伸、缩在IDC_DYCREDITS和IDC_COPYRIGHT两STATIC控件间,做为分隔线
BOOL CAbout::OnInitDialog()
{
  CDialog::OnInitDialog();
//"关于"对话框中对话框可收缩效果
  CRect Rect1,Rect2;                  //对话框收缩时大小

  GetDlgItem(IDC_DYCREDITS)->GetWindowRect(Rect1);
  GetDlgItem(IDC_COPYRIGHT)->GetWindowRect(Rect2);
  m_nReducedHeight = Rect1.Height()+(Rect1.top -Rect2.bottom)/2; //收缩后窗体高度
  dlgRect.bottom -= (Rect1.Height()+(Rect1.top -Rect2.bottom)/2);
  MoveWindow(&dlgRect);               //如果要显示对话框起始动态效果的话,不能使用该句
  m_bVertical=false;                //默认收缩对话框
}
// ---------------------------------------------------------
//  名称: OnMore
//  功能: 是否允许显示
//  变量: 无
//  返回: 无
//  编写: 徐景周,2002.4.8
// ---------------------------------------------------------
void CAbout::OnMore()
{
  m_bVertical = !m_bVertical;

  if(m_bVertical == FALSE)  //不显示
  {
    SetDlgItemText(ID_MORE,_T("更多>>"));
    SizeWindow(m_nReducedHeight,true);
//    m_DyCredits.EndScrolling();       //停止滚动
  }
  else            //显示
  {
    SetDlgItemText(ID_MORE,_T("<<隐藏"));
    SizeWindow(m_nReducedHeight,false);
    m_DyCredits.StartScrolling();      //开始滚动
  }

  UpdateWindow();
}
// ---------------------------------------------------------
//  名称: SizeWindow
//  功能: 伸展或收缩对话框
//  变量: ReduceHeight-收缩高度,bExtend-是否伸展
//  返回: 无
//  编写: 徐景周,2002.4.8
// ---------------------------------------------------------  
void CAbout::SizeWindow(int ReduceHeight, bool bExtend)
{
  CRect rc;
  GetWindowRect(&rc);
  if(bExtend)
  {
    for (int i= 0; i < ReduceHeight; i++)
    {
      rc.bottom--;
      MoveWindow(&rc);
    }
  }
  else
  {
    for (int i= 0; i < ReduceHeight; i++)
    {
      rc.bottom++;
      MoveWindow(&rc);
    }
  }
}

上一页  1 2 3 4 5 6  下一页

Tags:如何 有效 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接