控件的动态创建-MFC方式
来源:互联网 发布:硬盘播出系统 软件 编辑:程序博客网 时间:2024/05/16 04:56
动态创建控件
private: void DyCreateControl(); void UnDyCreateControl();
/// 动态创建控件的好处 : 可以批量操作,创建数量可以超过255const int g_iRow = 20;const int g_iCol = 20;const DWORD g_dwCtrlIdBegin = 2000;const DWORD g_dwCtrlIdEnd = g_dwCtrlIdBegin + g_iRow * g_iCol - 1;const int g_nWidth = 20;const int g_nHeight = 20;void CMainDlg::DyCreateControl() { int i = 0; int j = 0; int x = 0; int y = 0; CButton* pBtn = NULL; RECT rt; for (i = 0; i < g_iRow; i++) { for (j = 0; j < g_iCol; j++) { pBtn = new CButton; assert(NULL != pBtn); SetRect( &rt, x + j * g_nWidth, y + i * g_nHeight, x + j * g_nWidth + g_nWidth, y + i * g_nHeight + g_nHeight); pBtn->Create(TEXT(""), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, rt, this, g_dwCtrlIdBegin + i * g_iRow + j); } }}void CMainDlg::UnDyCreateControl() { int i = 0; int j = 0; CButton* pBtn = NULL; for (i = 0; i < g_iRow; i++) { for (j = 0; j < g_iCol; j++) { pBtn = (CButton*)GetDlgItem(g_dwCtrlIdBegin + i * g_iRow + j); if (NULL != pBtn) { delete pBtn; pBtn = NULL; } } }}void CMainDlg::OnDestroy() { CDialog::OnDestroy(); UnDyCreateControl();}BOOL CMainDlg::OnInitDialog(){CDialog::OnInitDialog(); DyCreateControl();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically// when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);// Set big iconSetIcon(m_hIcon, FALSE);// Set small icon// TODO: Add extra initialization herereturn TRUE; // return TRUE unless you set the focus to a control}
响应消息
afx_msg void OnBtnDyCreate(UINT nID);//}}AFX_MSG
//}}AFX_MSG_MAP ///< 必须放在 //}}AFX_MSG_MAP外面 ON_COMMAND_RANGE(2000, 2399, OnBtnDyCreate)END_MESSAGE_MAP()
void CMainDlg::OnBtnDyCreate(UINT nID) { CString str; CButton* pBtn = (CButton*)GetDlgItem(nID); str.Format("%d", nID & 0xf); pBtn->SetWindowText(str);}
0 0
- 控件的动态创建-MFC方式
- mfc动态创建控件
- MFC动态创建控件
- MFC 动态创建控件
- MFC动态创建控件
- 动态创建mfc控件
- MFC 动态创建控件
- MFC动态创建控件的消息处理
- MFC动态创建控件的消息处理
- MFC动态创建控件的消息处理
- 控件的动态创建-SDK方式
- MFC动态创建控件--CStatic
- MFC中动态创建控件
- 深入浅出MFC:动态创建控件
- MFC动态创建CEdit控件
- 在MFC中创建动态控件的生成与响应
- 在MFC中创建动态控件的生成与响应
- 在MFC中创建动态控件的生成与响应
- Nginx 之 Location基础配置 及 Location最佳实践
- 使用OpenCV合成两张图片
- myeclipse10 init文件
- 移动互联网金融技术经理成长记
- fiddler解析ssl
- 控件的动态创建-MFC方式
- 多线程之关键段(临界区)
- marathon-autoscaling功能研究
- Eclipse 下mahout的配置与使用
- Quartz与Spring的整合-Quartz中的job如何自动注入spring容器托管的对象
- Leetcode:Rising Temperature database
- Dorado页面中点击表格中的记录时当前行自动调整行高,换行显示隐藏的信息
- MyBatis generator generatorConfig.xml Maven配置
- mac 环境变量配置