MFC——实现界面元素的显示、隐藏和大小变化

       在界面开发中,有些元素在某些情况是不需要的,可以隐藏起来,在需要的时候显示,就像微云的那个上传界面,当需要修改的时候才显示出目录列表来?那这个如何来实现呢?

       这要是在android界面开发中,可能就比较容易了,当那个列表被设置成隐藏后,下面的极速上传按钮也就跟着显示上去了。但在MFC中,不行。要在代码里去主动的调用才行。

       首先分析下,要实现的要点:1.在点修改前后,界面的大小是变化了的,那就是界面的大小要改变?用函数MoveWindow可以实现这个效果;2.目录列表,其实用的是TreeCtrl,这个要隐藏和显示,用ShowWindow就可以实现了。

      下面看看如何来实现?

      首先是建一个工程。然后创建一个测试用的对话框,有两一个编辑框、一个按钮Button,就是TestBut和一个上传按钮。

然后在这个测试对话框里的OnInitDialog添加如下:

	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的按钮事件里添加:

	m_ButtonModify.ShowWindow(SW_HIDE);
	m_TreeCtrl.ShowWindow(SW_SHOW);
	MoveWindow(0, 0, 400, 300);
	m_ButtonUp.MoveWindow(300, 220, 60, 25);
	CenterWindow();

可以看到,这里的区域有变化,同时那个上传按钮的显示地方也有变化,因为这个时候树显示了,那就要相应的往下挪动了。


实际效果可以看微云啦。



转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/12676493







你可能感兴趣的:(C++,mfc,界面)