Objectarx MFC 添加ListControl并控制显隐

最主要的是实现一个Button点击将下方的List显示出来,制作成抽屉式菜单工具。

这篇文章是想实现点击工具栏并控制List的显隐。

参照:

MFC中实现一个控件的隐藏和显示
【MFC】判断控件是否为隐藏状态


MFC中查找构件使用ID进行控制,这个和WPF,WinForm的name一样,通过获取这个构件进行操作。控制显隐的接口是:ShowWindow(TRUE),获取构件状态的接口是:int bVisible = ((CWnd*)GetDlgItem(IDC_LIST1))->GetStyle() & WS_VISIBLE;


主要代码:

  1. 在初始化的时候,将List修改为隐藏
cpp 复制代码
//-----------------------------------------------------------------------------
void CMenuBarChildDlg::DoDataExchange (CDataExchange *pDX) {
	CAcUiDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMenuBarChildDlg)
	//}}AFX_DATA_MAP
	//在此处增加项目初始化
	CEdit* edit = (CEdit*)GetDlgItem(IDC_LIST1);
	edit->ShowWindow(FALSE);

	DDX_Control(pDX, IDC_LIST1, m_list);
}
  1. 在点击按钮的时候将指定的List显示出来
cpp 复制代码
void CMenuBarChildDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码

	CEdit* edit = (CEdit*)GetDlgItem(IDC_LIST1);
	int bVisible = ((CWnd*)GetDlgItem(IDC_LIST1))->GetStyle() & WS_VISIBLE;

	if(bVisible == 0)
	{
		edit->ShowWindow(TRUE);
	}
	else
	{
		edit->ShowWindow(FALSE);
	}
}
相关推荐
linweidong3 小时前
C++ 模块化编程(Modules)在大规模系统中的实践难点?
linux·前端·c++
半桔8 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
HABuo8 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
我在人间贩卖青春9 小时前
C++之多重继承
c++·多重继承
m0_736919109 小时前
C++代码风格检查工具
开发语言·c++·算法
2301_7634724611 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
阿猿收手吧!11 小时前
【C++】std::promise原理与实战解析
c++
m0_7066532312 小时前
分布式系统安全通信
开发语言·c++·算法
Zach_yuan12 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++
寻寻觅觅☆12 小时前
东华OJ-基础题-104-A == B ?(C++)
开发语言·c++