在界面开发中,有些元素在某些情况是不需要的,可以隐藏起来,在需要的时候显示,就像微云的那个上传界面,当需要修改的时候才显示出目录列表来?那这个如何来实现呢?
这要是在android界面开发中,可能就比较容易了,当那个列表被设置成隐藏后,下面的极速上传按钮也就跟着显示上去了。但在MFC中,不行。要在代码里去主动的调用才行。
首先分析下,要实现的要点:1.在点修改前后,界面的大小是变化了的,那就是界面的大小要改变?用函数MoveWindow可以实现这个效果;2.目录列表,其实用的是TreeCtrl,这个要隐藏和显示,用ShowWindow就可以实现了。
下面看看如何来实现?
首先是建一个工程。然后创建一个测试用的对话框,有两一个编辑框、一个按钮Button,就是TestBut和一个上传按钮。
然后在这个测试对话框里的OnInitDialog添加如下:
[cpp] view plaincopy
m_EditPath.SetWindowText(_T("上传到: 网盘"));
m_EditName.SetWindowText(m_strFileName);
m_TreeCtrl.ShowWindow(SW_HIDE);
m_ButtonUp.MoveWindow(300, 120, 60, 25);
MoveWindow(0, 0, 400, 200);
CenterWindow();
这样编译运行,就是没有显示树的效果。
要显示树的鲜果,就要在TestBut的按钮事件里添加:
[cpp] view plaincopy
m_ButtonModify.ShowWindow(SW_HIDE);
m_TreeCtrl.ShowWindow(SW_SHOW);
MoveWindow(0, 0, 400, 300);
m_ButtonUp.MoveWindow(300, 220, 60, 25);
CenterWindow();
可以看到,这里的区域有变化,同时那个上传按钮的显示地方也有变化,因为这个时候树显示了,那就要相应的往下挪动了。
实际效果可以看微云啦。
阅读(1947) | 评论(0) | 转发(0) |