扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
public: void EnableVisibleChildren(); void ExpandDialog (int nResourceID, BOOL bExpand); |
void CExpandDlgDlg::ExpandDialog (int nResourceID, BOOL bExpand) { // 对话框被nResourceID分成上下两部分,如果bExpand的值为TRUE // 对话框被完整显示,否则对话框显示上半部分。 static CRect rcLarge; static CRect rcSmall; CString sExpand; //开始时,对话框只显示上半部分 if (rcLarge.IsRectNull()) { CRect rcLandmark; CWnd* pWndLandmark = GetDlgItem (nResourceID); ASSERT(pWndLandmark); GetWindowRect (rcLarge); pWndLandmark->GetWindowRect (rcLandmark); rcSmall = rcLarge; rcSmall.bottom = rcLandmark.top; } if (bExpand) { //扩展对话框到最大尺寸 SetWindowPos(NULL, 0, 0, rcLarge.Width(), rcLarge.Height(), SWP_NOMOVE | SWP_NOZORDER); sExpand = "<< &Less"; EnableVisibleChildren(); } else { //只显示对话框的上半部分 SetWindowPos(NULL, 0, 0, rcSmall.Width(), rcSmall.Height(), SWP_NOMOVE | SWP_NOZORDER); sExpand = " &More >>"; EnableVisibleChildren(); } SetDlgItemText (IDC_MORE, sExpand); } void CExpandDlgDlg::EnableVisibleChildren() { //去掉没有显示的对话框的控件的功能和快捷键。 //得到第一个窗口 CWnd *pWndCtl = GetWindow (GW_CHILD); CRect rcTest; CRect rcControl; CRect rcShow; //得到对话框的完整矩形框 GetWindowRect(rcShow); while (pWndCtl != NULL) { //得到当前显示的对话框的矩形尺寸 pWndCtl->GetWindowRect (rcControl); if (rcTest.IntersectRect (rcShow, rcControl)) pWndCtl->EnableWindow(TRUE); else pWndCtl->EnableWindow(FALSE); //得到第二个矩形框 pWndCtl = pWndCtl->GetWindow (GW_HWNDNEXT); } } void CExpandDlgDlg::OnMore() { static BOOL bExpand = TRUE; ExpandDialog (IDC_DIVIDER, bExpand); bExpand = !bExpand; } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者