mfc编辑框怎么设置到另一个窗口

首页 > 实用技巧 > 作者:YD1662023-05-07 11:56:06

热键控制(Hot Key)

热键控件看起来就像一个编辑框,但是在热键控件中能够立刻反应用户刚刚按下的键组合,这在设置程序的热键时特别有用。

热键控件只是在“视觉”上显示了按键组合,设置热键的工作还需要用户添加代码完成。

MFC提供了CHotKey类进行支持

列表控制(List Control)

按一定的排列顺序显示一系列带图标的字符串。

列表控件提供了四种显示模式:大图标(Icon)、小图标(Small Icon)、列表(List)和报表(Report)

用户可以向列表控件中添加新的项,也可以控制列表控件的显示模式。

MFC提供了CListCtrl类进行支持

mfc编辑框怎么设置到另一个窗口,(5)

初始化:

struct INFO { int id; CString time; CString type; }info; CString id; int nRow=0; id.Format(_T("%d"), info.id); m_ListCtrl.InsertItem(nRow,id); m_ListCtrl.SetItemText(nRow, 1, info.time); m_ListCtrl.SetItemText(nRow, 2, info.type); nRow ;


添加记录:

struct INFO { int id; CString time; CString type; }info; CString id; int nRow=0; id.Format(_T("%d"), info.id); m_ListCtrl.InsertItem(nRow,id); m_ListCtrl.SetItemText(nRow, 1, info.time); m_ListCtrl.SetItemText(nRow, 2, info.type); nRow ;树形控件(Tree Control)

显示一系列项目的层次关系最典型的例子是显示磁盘上的文件与文件夹

如果有子项目的话,单击树形控件中的项目可以展开或者收缩其子项目

MFC提供了CTreeCtrl类进行支持

mfc编辑框怎么设置到另一个窗口,(6)

初始化

void CConfigDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码 CRect rcWnd; GetClientRect(&rcWnd); CRect rcChild = rcWnd; rcChild.top = rcWnd.top 10; rcChild.bottom -=10; rcChild.left = 160; rcChild.right -= 10; CRect laneRect = rcChild; if(::IsWindow(m_1Dlg)) m_1Dlg.MoveWindow(rcChild); if(::IsWindow(m_2Dlg)) m_2Dlg.MoveWindow(rcChild); if ( ::IsWindow( pTree.GetSafeHwnd() ) ) { pTree.MoveWindow(rcWnd.left 10,rcWnd.top 30,130,350,1); } }

树节点切换

void CConfigDlg::OnTvnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 HTREEITEM hSelected=pNMTreeView->itemNew.hItem; if(hSelected!=NULL) { pTree.SelectItem(hSelected); int nDat = pTree.GetItemData(hSelected); switch(nDat) { case 1: /*MessageBox(_T("YNAME"));*/ if(m_pPreWnd) m_pPreWnd->ShowWindow(SW_HIDE); m_1Dlg.ShowWindow(SW_SHOW); m_pPreWnd = &m_1Dlg; break; case 3: /*MessageBox(_T("XNAME"));*/ if(m_pPreWnd) m_pPreWnd->ShowWindow(SW_HIDE); m_2Dlg.ShowWindow(SW_SHOW); m_pPreWnd = &m_2Dlg; break; default: break; } } *pResult = 0; }

改变位置

void CConfigDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码 CRect rcWnd; GetClientRect(&rcWnd); CRect rcChild = rcWnd; rcChild.top = rcWnd.top 10; rcChild.bottom -=10; rcChild.left = 160; rcChild.right -= 10; CRect laneRect = rcChild; if(::IsWindow(m_1Dlg)) m_1Dlg.MoveWindow(rcChild); if(::IsWindow(m_2Dlg)) m_2Dlg.MoveWindow(rcChild); if ( ::IsWindow( pTree.GetSafeHwnd() ) ) { pTree.MoveWindow(rcWnd.left 10,rcWnd.top 30,130,350,1); } }属性表控件(Tab Control)

包含大量的控件,可以满足用户显示或者获取大量数据分类显示的要求,典型例子是Windows任务栏每个程序标签。

每个属性表又分为好几个属性页,这些属性页由各自的标签进行区分,这些属性页中都可以包容其他控件

在显示属性表的时候,一次只能够显示一个属性页的全部内容,同时显示其他属性页的标签,用户通过单击标签打开相应的属性页。

MFC提供了CTabCtrl类进行支持

mfc编辑框怎么设置到另一个窗口,(7)

初始化绑定变量

m_tab_Light.DeleteAllItems(); m_LightParkingDlg.DestroyWindow(); m_LightStatusDlg.DestroyWindow(); m_tab_Light.InsertItem(0, _T("0001")); // 插入第一个标签 m_tab_Light.InsertItem(1, _T("0002")); // 插入第二个标签 CRect tabRect; // 标签控件客户区的位置和大小 m_tab_Light.GetClientRect(&tabRect); // 获取标签控件客户区Rect // 调整tabRect,使其覆盖范围适合放置标签页 tabRect.left = 2; tabRect.right -= 1; tabRect.top = 21; tabRect.bottom -= 2; m_LightParkingDlg.Create(IDD_DIALOG_LIGHT_PARKING, &m_tab_Light); // 创建第一个标签页 m_LightStatusDlg.Create(IDD_DIALOG_LIGHT_STATUS, &m_tab_Light); // 创建第二个标签页 //m_LightParkingDlg.InitData(); m_LightParkingDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(),SWP_SHOWWINDOW);

控件页面切换

CRect tabRect; // 标签控件客户区的位置和大小 m_tab_Light.GetClientRect(&tabRect); // 获取标签控件客户区Rect // 调整tabRect,使其覆盖范围适合放置标签页 tabRect.left = 2; tabRect.right -= 1; tabRect.top = 21; tabRect.bottom -= 2; switch (m_tab_Light.GetCurSel()) { case 0: m_LightStatusDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW); m_LightParkingDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW); break; case 1: m_LightParkingDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW); m_LightStatusDlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW); break; }动画控件(Animation):

用来播放一段AVI格式的视频剪辑。用户可以控制视频剪辑的播放、停止和定位,但也仅限于这些功能。动画控件设置不能播放音频剪辑,如果用户需要更高层次的视频或者音频的支持,请选用MCIWnd控件

MFC提供了CAnimateCtrl类对动画控件进行支持

高级编辑框(Rich Edit)

编辑控件(Edit Control)功能的扩展。在高级编辑框中,除了简单的输入和编辑字符串外,用户还可以为字符或段落指定特定的格式,用户甚至还可以向高级编辑框中插入OLE项

高级编辑框基本上实现了一个带格式的文本编辑器功能,而只需要用户添加少量的接口。

MFC提供了CRichEditCtrl类进行支持

日期/时间选择器(Date Time Picker)

向用户提供了一种直观的选择日期和时间的方法、日期/时间选择器在外观上类似于一个组合框,但是当用户单击下拉箭头时就会展开一个日历控件供用户选择,而一旦用户做出了选择,日期/时间选择器会自动显示新的日期/时间。MFC提供了CDateTimeCtrl类进行支持。

mfc编辑框怎么设置到另一个窗口,(8)

上一页1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.