MFC控制:

Windows规范控制:

Windows电脑操作系统给予了Windows规范控制,Windows 95中也带来了一些新控制。全部这种控制目标全是可编程控制器的,我们可以应用Visual C 给予的提示框在线编辑器将他们加上到提示框中。微软公司基本类库(MFC)给予了封裝这种控制的类,如表6.1所显示。

setwindowpos函数使用-python之OS模块详解-第1张图片在MFC中,CWnd类是全部对话框类的基类。当然,它也是可控类的基类。

Windows规范控制在下列自然环境中给予:

windows 95

Windows 3.51及高些版本号。

win32s 1.3

留意:visual C 4.2及高些版本号不会再适用Win32s。

MFC基本上常见控制的基本上使用方法。

v c 控件工具箱:

setwindowpos函数使用-python之OS模块详解-第2张图片按键

用以接受客户的指令,应用软件在读取到使用者的指令后一般必须做一些后台管理工作中。按键能够回应点一下或双击鼠标姿势,按键接受到电脑鼠标姿势后,向父亲对话框推送对应的控制通告,客户能够投射这种控制通告的信息开展对应的解决。

在提示框中,您能够根据挑选按键特性中的“默认设置”选择项来界定默认设置按键。假如在提示框处在激活状态时按回车,则等同于点击默认设置按键。MFC给予CButton类来适用按键操纵。

勾选框(勾选框)

用以表明一个很有可能的选择项,该选择项是单独的,能够由客户选择或撤销。选定该选择项时,复选标识发生,撤销该选择项时,复选标识消退。MFC中的CButton类适用勾选框,客户还可以根据SetCheck()涵数和GetCheck()涵数设定或获得勾选框的当今情况。

BST_UNCHECKED==((CButton*)GetDlgItem(IDC_CHECK_RES1))->GetCheck()((CButton*)GetDlgItem(IDC_CHECK_RES1))->SetCheck(true);

编辑框(编写控制)

用以接受客户键入的字符串数组。根据挑选编辑框的选择项,编辑框能够接受字符串数组,数据,登陆密码等。编辑框还可以设定为接受几行字符串数组的方式;实例变换能够全自动实行。编辑框能够向父对话框推送各种各样控制通告,假如客户必须,能够对其开展解决。MFC给予CEdit类适用编辑框控制。

GetDlgItem(IDC_***)->SetWindowText(Cstring); GetDlgItem(IDC_***)->GetWindowText(Cstring);

组成框(组成框)

根据列表框和编辑框的组成,客户不仅仅能够挑选目录中目前的选择项,还能够键入新的选择项。MFC给予了一个ccombox类来适用组成框控制。

CComboBox * AAA = (CComboBox*)(GetDlgItem(IDC_***)); AAA->AddString(_T("***")); AAA->SelectString(0, _T("***")); AAA->SetCurSel(0); int nSel = AAA->GetCurSel(); AAA->GetLBText(nSel, Cstring); if(strType.Trim() == _T("***"))

列表框(列表框)

用以挑选一系列可能的选择项,在其中客户还可以根据下拉列表访问。在列表框中,依据客户在控制特性提示框中的设定,您还可以开展一次挑选或数次挑选。MFC给予CListBox类适用列表框控制。

排序框(排序框)

用以用逻辑顺序包围着一组控制,并在这种控制周边加上界限和文章标题。必须特别注意的是,采景仅仅为了更好地在视觉冲击上对控制开展“排序”,真真正正的“排序”工作中还必须一些别的的工作中。只形象化地展现一组逻辑顺序,不加上一切编码。

setwindowpos函数使用-python之OS模块详解-第3张图片单选按钮(单选按钮)

用以挑选机会的选择项。与(勾选框)不一样,此选择项并不是单独的。

一般好多个单选按钮构成一个组,同一组中只选取一个单选按钮。

MFC还应用CButton类适用单选按钮控制,

SetCheck()和GetCheck()作用也适用单选按钮。

静态数据文字(静态数据文字)

用以在特定部位表明特殊字符串数组,一般用以标志周边另一个控制的內容。静态数据文字控制中表明的字符串数组一般始终不变,但必需时务必分派不一样的食材ID号,并根据启用相对应的涵数开展设定。MFC给予了CStatic类来适用静态数据操纵。

图形控制(图象操纵)

表明位图文件和标志,及其制作和表明图型,方形地区关键合适表明,方形地区还可以应用静态数据输入框。

下拉列表(下拉列表)

这包含一个水准下拉列表和一个竖直下拉列表。除开视觉冲击上的方位不一样,水准下拉列表在翻转的时候会转化成WM_HSCROLL信息,而竖直下拉列表在翻转的时候会推送WM_VSCROLL信息。MFC给予CScrollBar开展适用。

滚轮控制(滚轮控制)

一般用以接纳程序流程中的一系列离散值。

客户能够设定滚轮控制的值范畴,并在控制上加上标尺标识,以表明特殊部位的含意。

MFC给予CSliderCtrl类开展适用。

转动按键。

包含一对挨近在一起的往上和向下箭头,而且根据应用调整按键能够提升或降低特殊值。

调整按键一般是需要一个“小伙伴”控制,一般是一个编辑框。

点一下调整按键的向上箭头,编辑框中的数据提升;不然,它会降低。MFC给予CPinButtonCtrl类开展适用。

时间轴(进展操纵)

实行用时长的实际操作时,体现当今进展。

当实际操作的进展不断进步时,时间轴会用特点色调添充时间轴框。客户能够设定时间轴的范畴和所在位置。

MFC给予CProgressCtrl类开展适用。

CProgressCtrl* progressbar = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS_1); progressbar->SetRange(0, 4); progressbar->SetPos(0);setwindowpos函数使用-python之OS模块详解-第4张图片快捷键操纵(快捷键)

快捷键控制看上去像一个编辑框,但它能够马上体现客户刚按住的键盘快捷键,这在设定程序流程快捷键时很有效。

快捷键控制只在“视觉效果”上表明键盘快捷键,设定快捷键的运行必须客户加上编码。

MFC给予了CHotKey类来适用。

目录控制(目录控制)

以一定的顺序排列表明一系列含有标志的字符串数组。

目录给予四种表明方式:大图标,图标,目录和汇报。

客户能够向目录控制加上新项,并操纵目录控制的表明方式。

MFC给予CListCtrl类开展适用。

setwindowpos函数使用-python之OS模块详解-第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 ;

树控制(树控制)

表明一系列新项目的层级关联。最常见的事例是在硬盘上显示文件和文件夹名称。

如果有子项,请单击树控制中的新项目来进行或收拢他的儿子新项目。

MFC给予了Ctrl类的适用。

setwindowpos函数使用-python之OS模块详解-第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(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); } }

特性表控制(菜单栏控制)

包括很多控制,能够满足客户表明或获得很多数据信息开展归类表明的要求。一个非常典型的事例是Windows任务栏图标中的每一个程序流程标识。

每一个特性表被分为好多个特性页,这种特性页由他们自身的标识来区别,而且全部这种特性页都能够包括别的控制。

表明特性表时,一次只有表明一个特性页的所有内容,别的特性页的标识能够一起表明。客户能够点一下标识开启对应的特性页。

MFC给予CTabCtrl类开展适用。

setwindowpos函数使用-python之OS模块详解-第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; }

操纵(动漫):

用以播放视频AVI文件格式的视频编辑。客户能够操纵视频编辑的播放视频,终止和精准定位,但仅限这种作用。动漫设定没法播放视频音乐剪辑。假如客户必须更高級其他视頻或声频适用,挑选MCIWnd控制。

MFC给予CAnimateCtrl类适用动漫操纵。

高級编辑框(丰富多彩编写)

编写操纵作用的拓展。在高級编辑框中,除开简易的填写和编写字符串数组,客户还能够为标识符或文章段落特定规则的文件格式,乃至还可以在高級编辑框中插进OLE项。

高級编辑框基本上完成了恢复出厂设置文本编辑的作用,只必须客户加上好多个页面。

MFC给予CRichEditCtrl类开展适用。

日期时间选择器。

为使用者带来了挑选日期和时间段的直接方式。日期/时间选择器在外表上类似组成框,可是当消费者点击下拉菜单时,将进行一个日历控制供我们挑选。一旦客户作出挑选,日期/时间选择器将全自动表明新的日期/時间。MFC给予CDateTimeCtrl类开展适用。

setwindowpos函数使用-python之OS模块详解-第8张图片system time times _ 1;//开始时间日期system time _ 1;//完毕時间日期cdatetimectrl * dtpickectrs _ 1 =(cdatetimectrl *)getdlgitem(IDC _ datetimeicker _ start 1);//获得時间操纵返回值cdatetimectrl * dtpicktre _ 1 =(cdatetimectrl *)getdlgitem(IDC _ datetimeicker _ end 1);memset(×_1,0,sizeof(times _ 1));//clock复位memset (& timee _ 1,0,sizeof(timee _ 1));dtPickctrs _ 1-> GetTime(×_ 1);//获得控制挑选的時间,储存到自变量dtPickctre _ 1-> GetTime(& timee _ 1);CString strTimeStart//将时间转换为字符串数组strtimestart . format(_ t(" % 04d-% 02d-% 02d % 02d:% 02d:% 02d "),times _ 1.wyear,times _ 1.wmonth,times _ 1.wday,times _ 2.whour,times。CString strTimeEndstrTimeEnd。文件格式(_ T(" % 04d-% 02d-% 02d % 02d:% 02d:% 02d "),timee_1.wYear,timee_1.wMonth,timee_1.wDay,timee_2.wHour,timee_2.wMinute,timee _ 2 . wssecond);获得时间格式。

SYSTEMTIME time; ::GetLocalTime(&time);

日历操纵(月日历)

如下图所显示,看上去好像真正的日历,实际操作也类似,形象化地为使用者带来了一种观查和表明当今日期的方法。MFC给予了CMonthCalCtrl类开展适用。

setwindowpos函数使用-python之OS模块详解-第9张图片IP地址操纵

IP地址控制用以键入和编写IP地址,MFC给予CIPAddressCtrl类开展适用。

控制的外形类似编辑框,但键入标识符能够三个一组全自动区别,并且用点分隔。IP地址操纵为开发设计适用大数据技术的程序流程给予了便捷。

拓展组成框(拓展组成框)

在一般组成框的根基上也适用图片浏览。

您能够在组成框中表明特殊的标志来标示相对应的挑选,而不单单是显示文本。

MFC给予CComboBoxEx类开展适用。

客户界定的控制(自定控制)

应用控制时,其类务必获得类的适用。这一对话框类能够是VC类,例如按键和编写。在库函数中加上一个CEdit类的成员函数:CEdit m_Text(即鼠标右键加上自变量),随后依据Edit控制应用。

setwindowpos函数使用-python之OS模块详解-第10张图片网页链接控制(SysLink控制):

1.用以向MFC应用软件加上网页链接,如同html中的网页链接一样。您能够点击连接到网页页面。控制拖到浏览器上,并关联一个自变量(m_linkCtrl),全部这种全是依据规范html中href的使用方法撰写的。写错了当然连接不上。

您能见到html中的href特性是怎么设置的。除此之外,还需要留意字符串数组中引号的解决(还记得加一个转义字符)和加上点一下回应信息。

m_linkCtrl.SetWindowTextW(_T("Miko's Note")); PNMLINK pNMLink = (PNMLINK) pNMHDR; ShellExecuteW(NULL, L"open", pNMLink->item.szUrl, NULL, NULL, SW_SHOWNORMAL); //在网页中开启

2.如同按键控制一样,回应相对应的信息。

setwindowpos函数应用-python之OS控制模块详细说明-第11张图片多按键组成控制(分拆按键控制)。

如下图,完成挑选好几个按键的作用,应用时加上对应的菜单栏。

setwindowpos函数使用-python之OS模块详解-第12张图片IP地址键入和输入输出操纵(IP地址操纵):

能够同时做为inet_addr(ip)的键入,分节符为分号(,)。

指令按键操纵(指令按键操纵)

您不但能够向按键加上指令,还能够注解指令。

全部控制的通用特性:

标志:控制的資源标志。

由此可见:控制是不是由此可见。

禁止使用:是不是禁止使用控制,禁止使用的控制不可以接纳电脑键盘和电脑鼠标键入。

组:是不是此后空逐渐一个新组。

制表位:是不是能够在程序流程中应用[Tab]键转换到该控制。

协助标志:是不是为控制分派协助标志,该标志根据控制自身的資源标志。

手机客户端边沿:给控制加上一个凹型界限,使全部控制看上去好像凹型的。

静态数据边沿:向控制加上界限。

多形式架构:向控制加上一个三维架构,它是凸的,与手机客户端边沿产生比照。

全透明:具备此特性的对话框是通透的,它下边的对话框不容易被它挡住。

接纳文档:具备此特性的对话框能够接受拖拽文档。假如将文档拖至此控制上,该控制将接受WM_DROPFILES信息。

父母双亡通告:标示控制不向父亲对话框推送WM_PARENTNOTIFY信息。

右两端对齐文字:表明文字右两端对齐。

setwindowpos函数使用-python之OS模块详解-第13张图片以上特性都可以根据控制的特性提示框开展设定。在特性提示框中按[F1]查询状态的协助信息内容。

每一种控制都由一个MFC控制类管理方法。当根据資源在线编辑器将控制加上到提示框里时,visualC 将全自动为控制类(即目标)转化成一个案例,并启用构造方法。当提示框关掉时,他的儿子控制目标会全自动消毁。

您还可以在程序流程中撰写属于自己的编码来建立,表明和设定控制的特性,而不用应用資源在线编辑器。

全部控制类都来源于CWnd,控制的一些实际操作和特性设定必须CWnd本身的友元函数。CWnd的一些涵数一般用以控制控制和设定控制特性。

SetWindowText:设定要在控制上表明的文章标题文字,用以设定控制的caption特性。

获得控制的文章标题文字。

开启:设定控制的Disabled特性,即社交媒体自控能力是不是能够接受键盘和鼠标键入。

SetWindowPos:变更对话框的尺寸,部位和z轴次序。

挪动对话框:更改对话框的尺寸和部位。

GetWindowRec:获得对话框的尺寸和部位(信息内容存放在矩形框构造中)。

GetClientRect:获得对话框手机客户端地区的尺寸(信息内容以矩形框构造储存)。

表明对话框:设定对话框的常见性(即对话框是不是由此可见)。

SetWindowText/GetWindowText还可以用于设定/获得提示框的文章标题文字。

标签 美腿

评论(0条)

龙8唯一官方网站 游客评论