Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187775
  • 博文数量: 89
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 828
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-08 10:44
文章分类
文章存档

2014年(9)

2013年(80)

我的朋友

分类: C/C++

2013-10-13 14:36:49

  在界面开发中,有些元素在某些情况是不需要的,可以隐藏起来,在需要的时候显示,就像微云的那个上传界面,当需要修改的时候才显示出目录列表来?那这个如何来实现呢?
       这要是在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) |
给主人留下些什么吧!~~