文档详情

可扩展的对话框.ppt

发布:2025-02-09约3.31千字共10页下载文档
文本预览下载声明

成都信息工程学院计算机学院VC++程序设计成都信息工程学院计算机学院VC++程序设计成都信息工程学院计算机学院成都信息工程学院计算机学院*成都信息工程学院计算机学院*案例2:可扩展的对话框需求与目标*成都信息工程学院计算机学院*这个功能类似QQ的显示聊天记录当用户要显示一些过多的选择时,对话框自动扩展其大小,将隐藏的部分显示出来效果*成都信息工程学院计算机学院*效果*成都信息工程学院计算机学院*手段*成都信息工程学院计算机学院*利用CDialog类的SetRect函数来设定对话框的大小手段*成都信息工程学院计算机学院*利用CDialog类的SetRect函数来设定对话框的大小0102调用MoveWindow函数来实现改变对话框的大小编程步骤(1)*成都信息工程学院计算机学院*使用AppWizard创建一个基于对话框的应用程序编程步骤(2)*成都信息工程学院计算机学院*为对话框添加一些控件编程步骤(2)*成都信息工程学院计算机学院*编程步骤(2)*成都信息工程学院计算机学院*编程步骤(3)*成都信息工程学院计算机学院*为对话框添加3个成员变量:1BOOLm_bExpand;2//记录是否已经扩展对话框3UINTm_nExpandedHeight;4//扩展后对话框的高度5UINTm_nNormalHeight;6//扩展前对话框的高度7BOOL*成都信息工程学院计算机学院*typedefintBOOL;typedeflongBOOL;ABooleanvalue.010203UINT???*成都信息工程学院计算机学院*typedefunsignedintUINT;01A16-bitunsignedintegeronWindowsversions3.0and3.1;a32-bitunsignedintegeronWin32.02编程步骤(4)*成都信息工程学院计算机学院*在对话框的OnInitDialog函数中加入以下代码: m_bExpand=FALSE; CRectrcDlg,rcMarker; GetWindowRect(rcDlg); m_nExpandedHeight=rcDlg.Height(); GetDlgItem(IDC_BORDER)-GetWindowRect(rcMarker); m_nNormalHeight=(rcMarker.top-rcDlg.top); rcDlg.SetRect(rcDlg.left,rcDlg.top,rcDlg.left+rcDlg.Width(),rcDlg.top+m_nNormalHeight); MoveWindow(rcDlg,TRUE);CWnd::GetWindowRect*成都信息工程学院计算机学院*voidGetWindowRect(LPRECTlpRect)const;lpRectPointstoaCRectobjectoraRECTstructurethatwillreceivethescreencoordinatesoftheupper-leftandlower-rightcorners.RemarksCopiesthedimensionsoftheboundingrectangleoftheCWndobjecttothestructurepointedtobylpRect.Thedimensionsaregiveninscreencoordinatesrelativetotheupper-leftcornerofthedisplayscreen.Thedimensionsofthecaption,border,andscrollbars,ifpresent,areincluded.RECT、LPRECT*成都信息工程学院计算机学院*typedefstructtagRECT{LONGleft;LONGtop;LONGright;LONGbottom;}RECT,*PRECT,NEAR*NPRECT,FAR*LPRECT;CRect*成都信息工

显示全部
相似文档