MFC控件使用详细教程

合集下载

MFC_基本控件使用

MFC_基本控件使用

MFC_基本控件使用MFC(Microsoft Foundation Class)是一种用于开发Windows应用程序的编程框架,它提供了一系列的类和函数,方便开发者快速地创建Windows界面和处理事件。

在MFC中,基本控件是开发应用程序的重要组成部分,它们用于显示和交互用户界面。

本文将介绍MFC中几种常用的基本控件以及它们的使用方法。

1. 按钮控件(CButton):按钮控件用于接收用户的点击操作,通常用于触发相应的事件处理函数。

创建按钮控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“按钮”并将其拖动到对话框上;3)设置按钮的属性,如ID、文本、尺寸等。

1)在资源视图中右击对应的对话框,选择“添加控件”;组合框控件允许用户从预定义的选项中进行选择,类似于下拉列表。

创建组合框控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“组合框”并将其拖动到对话框上;3)设置组合框的属性,如ID、选项列表、尺寸等。

4. 列表框控件(CListBox):列表框控件用于显示一个选项列表,并且可以支持多选。

创建列表框控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“列表框”并将其拖动到对话框上;3)设置列表框的属性,如ID、选项列表、尺寸等。

5. 树形视图控件(CTreeCtrl):树形视图控件用于显示一个层级结构的数据,类似于文件夹结构或者程序的菜单栏。

创建树形视图控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“树形视图”并将其拖动到对话框上;3)设置树形视图的属性,如ID、尺寸等;4)使用CTreeCtrl的成员函数添加、删除、修改树节点。

6. List控件(CListCtrl):1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“List控件”并将其拖动到对话框上;3)设置List控件的属性,如ID、列数、尺寸等;以上是几种常用的MFC基本控件的使用方法,通过使用这些控件,可以轻松地创建出一个功能完善、交互友好的Windows应用程序。

MFC通用控件使用详解

MFC通用控件使用详解

MFC通用控件使用详解首先,我们需要在MFC应用程序中包含要使用的控件的头文件。

例如,要使用按钮控件,我们需要包含afxwin.h文件。

然后,在对话框资源中添加一个按钮控件,并给它一个唯一的ID值。

在OnInitDialog(函数中,我们可以使用以下代码获取按钮控件的指针并对其进行操作:```cppCButton* pButton = (CButton*)GetDlgItem(IDC_BUTTON1);``````cpppButton->SetWindowText(_T("Click Me"));```我们还可以使用以下代码来设置按钮的样式:```cpppButton->SetButtonStyle(BS_DEFPUSHBUTTON);```这将使按钮默认显示为按下按钮。

```cppCEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);``````cppCString strText;pEdit->GetWindowText(strText);``````cpppEdit->SetWindowText(_T("Hello World"));```对于列表框控件,我们可以使用以下代码获取列表框的指针:```cppCListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST1); ```然后,我们可以使用以下代码向列表框中添加项:```cpppListBox->AddString(_T("Item 1"));pListBox->AddString(_T("Item 2"));```我们还可以使用以下代码来获取列表框中选定项的索引:```cppint nIndex = pListBox->GetCurSel(;```此外,MFC通用控件还提供了进度条控件和组合框控件等功能。

实验名称MFC基本控件的使用

实验名称MFC基本控件的使用

1、实验名称:MFC基本控件的使用2、实验目的:掌握编辑框类及其方法,熟练掌握利用编辑框类开发基于MFC的应用程序的方法。

3、实验内容:使用MFC AppWizard创建如图一所示的基于对话窗的应用程序,实现算术加、减、乘和除运算。

图一4、程序实现方法:(1)使用AppWizard建立应用程序框架①在进入Visual C++ 6.0的第一个界面下,选择MFC AppWizard(exe),在Project name 文本输入框中输入新建的项目名称“计数器”,并设置其所在位置,单击OK按钮,如图二所示。

图二Visual C++ 6.0的第一个界面②在MFC AppWizard的第一步中选择基本对话,如图三所示,其余的都采用默认选项。

图三MFC AppWizard的第一步界面这样就建立了一个基于对话框的程序,如图四所示。

图四基于对话框的界面(2)利用资源编辑器建立对话框在图四的Resource View选项卡中打开Dialog资源组,本程序的工程文件名为计数器,因此,系统自动产生一个名为IDD_MY_DIALOG的资源文件,双击IDD_ MY_DIALOG,在右边的窗口中显示出待编辑的对话框。

根据如图一所示的样式,利用Visual C++ 6.0的控键(Controls)建立对话框。

下面以“数据1”编辑框和“+”按钮为例介绍控件的创建过程,其他编辑框和按钮的创建可参照此操作:①在图四中Controls的“编辑框”按钮上单击鼠标左键、在如图一所示的对话框编辑窗口上的“数据1”编辑框的位置上,按下鼠标左键,并拖动鼠标画出一个大小合适的编辑框。

在编辑框上单击鼠标右键,在弹出的快捷莱单中选择Properties选项,此时弹出Edit Properties 属性设置对话框,如图五所示,在该对话框中输入ID属性。

图五Edit Properties对话框②在图四中Controls的“按钮”按钮上单击鼠标左键,在图一的“+”按钮的位置上,按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。

MFC控件使用详细教程

MFC控件使用详细教程

MFC控件使用详细教程MFC(Microsoft Foundation Class)是微软推出的一套用于开发Windows应用程序的类库。

它提供了许多方便易用的控件,可以快速创建用户界面。

本教程将详细介绍如何使用MFC控件来创建Windows应用程序。

第一步:创建一个MFC应用程序项目要使用MFC控件,首先需要创建一个MFC应用程序项目。

在Visual Studio中,选择"文件"->"新建"->"项目",然后选择"MFC应用程序"模板。

在项目设置中,可以选择使用对话框或视图来作为应用程序的主界面。

第二步:设置控件属性第三步:添加控件消息处理程序控件不仅仅可以显示在界面上,还可以响应用户的操作。

例如,当用户点击按钮时,可以执行一些特定的操作。

要实现这个功能,需要添加控件消息处理程序。

可以通过右键单击控件,选择"添加事件处理程序"来添加控件消息处理程序。

在生成事件处理程序的对话框中,可以选择控件的事件(如点击事件、鼠标移动事件等)和消息的处理函数。

在消息处理函数中,可以编写代码来实现特定的功能。

第四步:编写控件的功能代码在控件的消息处理函数中,可以使用MFC类库提供的函数来实现控件的功能。

例如,如果用户点击了按钮控件,可以使用CButton类的GetWindowText函数来获取按钮的文本,并使用CMessageBox类的MessageBox函数来显示一个消息框。

可以使用类似的方式来处理其他控件的事件。

例如,当用户选择了一个列表框中的项时,可以使用CListBox类的GetCurSel函数来获取选择的项的索引,并根据索引来执行特定的操作。

第五步:编译和运行应用程序完成了控件的添加和功能编写后,可以使用Visual Studio的编译和运行功能来编译和运行应用程序。

在编译过程中,会生成可执行文件和相关的依赖文件。

MFC_基本控件使用

MFC_基本控件使用

MFC_基本控件使用MFC(Microsoft Foundation Classes)是一个用于基于 Windows 的应用程序开发的C++类库。

它提供了一套基本控件,使开发人员可以轻松地创建 Windows 应用程序的用户界面。

MFC提供了多种基本控件,用于显示和输入数据、与用户交互。

以下是一些最常见的基本控件及其用法:1. Button(按钮)控件Button 控件用于触发特定的操作或执行特定的功能。

创建 Button 控件的方法如下:```CButton myButton;myButton.Create("Click Me", WS_CHILD , WS_VISIBLE ,BS_PUSHBUTTON, CRect(10, 10, 100, 30), pParentWnd, ID_MYBUTTON);```其中,"Click Me" 是按钮的显示文本,WS_CHILD , WS_VISIBLE ,BS_PUSHBUTTON 是按钮的样式。

CRect(10, 10, 100, 30) 是按钮的大小和位置,pParentWnd 是按钮的父窗口,ID_MYBUTTON 是按钮的标识符。

Edit Control 控件用于接收用户输入的文本数据。

创建 Edit Control 控件的方法如下:```CEdit myEdit;myEdit.Create(WS_CHILD , WS_VISIBLE , WS_BORDER, CRect(10, 50, 300, 70), pParentWnd, ID_MYEDIT);```3. List Box(列表框)控件List Box 控件用于显示一个垂直列表,可以包含多个项。

创建 List Box 控件的方法如下:```CListBox myList;myList.Create(WS_CHILD , WS_VISIBLE , WS_BORDER ,LBS_NOTIFY, CRect(10, 90, 200, 200), pParentWnd, ID_MYLIST);```其中,WS_CHILD , WS_VISIBLE , WS_BORDER , LBS_NOTIFY 是列表框的样式。

MFC控件使用说明书

MFC控件使用说明书

MFC控件使用说明书未央1117 2018-04-19 10:10:18VC++控件工具箱:2 按钮(Button):用来接收用户的命令,应用程序在接收到用户命令后,通常需要进行一些后台工作。

按钮可以响应单击或双击动作,在按钮接收到鼠标动作后,向其父窗口发送相应的控件通知,用户可以对这些控件通知进行消息映射,从而进行相应的处理。

在一个对话框中,可以定义一个默认按钮,这只要选中按钮属性中的“Default”选项。

如果在对话框活动的时候按下了Enter键,则等同于单击了默认按钮。

MFC提供了CButton类支持按钮控件。

3 复选框(Check Box):用来显示某种可能的选择,该项选择是独立的,用户可以选中或取消该选项。

在选项被选中的时候核选标记出现,选项被取消时核选标记消失。

MFC中由CButton类对核选框进行支持,用户可以通过SetCheck()函数和GetCheck()函数设置或获取核选框当前的状态。

[cpp]1.BST_UNCHECKED==((CButton*)GetDlgItem(IDC_CHECK_ RES1))->GetCheck()[cpp]1.((CButton*)GetDlgItem(IDC_CHECK_RES1))->SetCheck(true);4 编辑框(Edit Control):用来接收用户输入的字符串。

通过选择编辑框的选项,编辑框可以接收字符串、数字、密码等;编辑框还可以设置成接收多行字符串的模式;可以自动进行大小写转换。

编辑框可能向其父窗口发送多种控件通知,如果用户需要,可以对这些控件通知进行处理。

MFC提供了CEdit类支持编辑框控件。

[cpp]1.GetDlgItem(IDC_***)->SetWindowT ext(Cstring);2.GetDlgItem(IDC_***)->GetWindowText(Cstring);5 组合框(Combo Box):列表框和编辑框的组合,用户除了可以在列表中对已经存在的选项进行选择外,还可以输入新的选择。

MFC控件使用详细教程

MFC控件使用详细教程

MFC控件使用详细教程一、 Picture Control控件1、Picture Control控件功能简介Picture Control是Visual Basic提供的一种使用图像替换文本的控件,可以方便地将图像放入Visual Basic中,然后可以通过控件来显示图像,还可以处理图像的改变、放大、缩小等功能,可以很好地满足窗体应用程序中对图像处理的需求。

2、Picture Control控件实现步骤(1) 将Picture Control控件放入窗体中在Visual Basic的工具箱中,将Picture Control控件拖放放到工作表窗体中,即可实现Picture Control控件。

(2) 设置Picture Control控件设置Picture Control控件属性,包括Picture、BackStyle、BorderStyle等属性,将图像加入控件中,可以通过以下几种方式实现:a. 通过LoadPicture方法加载图像Picture1.LoadPicture("C:\MyDocuments\Pictures\MyPicture.bmp")b. 通过Picture属性加载图像Picture1.Picture=LoadPicture("C:\MyDocuments\Pictures\MyPict ure.bmp")(3) Picture Control控件的使用Picture Control控件最常用的是将图像放入控件中,通过设置Picture属性即可实现:Picture1.Picture=LoadPicture("C:\MyDocuments\Pictures\MyPict ure.bmp")Picture Control控件还可以处理图像的改变、放大、缩小等功能:'放大图像Picture1.Stretch = TruePicture1.Width = Picture1.Width * 2Picture1.Height = Picture1.Height * 2'缩小图像Picture1.Width = Picture1.Width / 2Picture1.Height = Picture1.Height / 2'改变图像Picture1.Picture =LoadPicture("C:\MyDocuments\Pictures\NewPicture.bmp")二、 Listbox Control控件1、Listbox Control控件功能简介Listbox Control是Visual Basic提供的一种使用列表显示内容的控件,可以将多个字符串文本放在一个列表中,用户可以在列表框中进行选择,进行操作,也可以设置列表框的属性。

MFC控件使用详细教程

MFC控件使用详细教程

使用Windows标准控件我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对话框或其它窗口中充当与用户交互的元素。

在Visual C++中,可以使用的控件分成三类:(1) Windows标准控件Windows标准控件由Windows操作系统提供,在Windows 95中还提供了一些新增的控件。

所有这些控件对象都是可编程的,我们可以使用Visual C++提供的对话框编辑器把它们添加到对话框中。

Microsoft基础类库(MFC)提供了封装这些控件的类,它们列于表6.1。

表6.1 Windows标准控件续表6.1前面提到过,在MFC中,类CWnd是所有窗口类的基类,很自然的,它也是所有控件类的基类。

Windows标准控件在以下环境下提供:•Windows 95•Windows NT 3.51及以后版本•Win32s 1.3•注意:•Visual C++ 4.2及以后版本不再支持Win32s。

(2) ActiveX控件ActiveX控件可用于对话框中,也可用于HTML文档中。

这种控件过去被称为OLE 控件。

本书将在专门的章节中来讲述关于ActiveX控件的知识。

这里仅指出ActiveX控件使用了与标准控件完全不同的接口和实现方法。

(3) 其它MFC控件类除了Windows标准控件和自己编写的或者来自于第三方软件开发商的ActiveX 控件以外,MFC还提供了另外三种控件,它们由下面的三个类进行封装:•类CBitmapButton用于创建以位图作为标签的按钮,位图按钮最多可以包括四个位图图片,分别代表按钮的四种不同状态。

•类CCheckListBox用于创建选择列表框,这种列表框中的每一项前面有一个复选框,以决定该项是否被选中。

•类CDragListBox用于创建一种特殊的列表框,这种列表框允许用户移动列表项。

在本章我们仅讲述第一类控件,即Windows标准控件。

所涉及的内容包括各个控件的使用及相应的技巧。

C++MFC控件使用详解

C++MFC控件使用详解

1。

mfc单文档结构2。

添加左击鼠标,按下键盘事件3。

消息:窗口消息,控件的通知消息,命令消息第5章对话框和常用控件5.1对话框的使用5.2控件的创建和使用方法5.4通用对话框和消息对话框5.1对话框的使用5.1.1模式和无模式对话框模式对话框指当对话框被弹出,用户必须在对话框中作出相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。

无模式对话框指当对话框被弹出后,一直保留在屏幕上,可继续在对话框所在的应用程序中进行其它操作;需要使用对话框时,单击对话框所在的区域即可激活。

在创建和退出对话框窗口时的方式不同:创建时,模式对话框由系统自动分配内存空间,对话框退出时,对话框对象自动删除。

无模式对话框需要来指定内存,退出时还需删除对话框对象。

退出时,两种对话框所使用的终止函数不一样。

模式对话框通过调用CDialog:: EndDialog来终止,无模式对话框则是调用CWnd::DestroyWindow来终止。

函数CDiaolog::OnOK 和CDiaolog::OnCancel 是调用EndDialog 的,因此无模式对话框必须用DestroyWindow来重载OnOK和OnCancel两个函数。

需要正确删除表示对话框的对象。

对模式对话框,在创建函数返回后即可删除对象。

无模式对话框不是同步的,在创建函数调用后立即返回,因而不知道何时删除对象,但可以通过重载CWnd::PostNcDestroy函数并执行清除操作。

5.1.2使用对话框编辑器打开对话框编辑器将项目工作区窗口切换到ResourceView页面,双击Dialog目录下任意一个对话框ID 或者,选择“Insert ”“Resource菜单命令(或按快捷键Ctrl+R),选择Dialog项,单击New 在对话框中添加和编辑控件(1)控件添加的方法在对话框中添加一个控件的方法有下列几种:在控件工具栏中单击某控件,鼠标箭头在对话框内变成十”字形状;在对话框指定位置单击鼠标左键,再拖动选择框可改变控件的大小和位置。

MFC中进度条控件的使用方法

MFC中进度条控件的使用方法

MFC中进度条控件的使用方法MFC(Microsoft Foundation Class)进度条控件是一种用于显示任务进度的常见控件,可以在界面中显示一个动态的进度条,以便用户了解任务的进度情况。

在本文中,将介绍MFC中如何使用进度条控件,并详细说明其使用方法。

1.创建进度条控件在MFC应用程序的对话框资源中添加一个进度条控件,控件ID可以自定义。

然后在对应的对话框类中添加一个变量用于关联该控件,方法如下:```cpp#include <afxcmn.h> // 导入控件类的头文件class CMyDialog : public CDialogEx//...protected:CProgressCtrl m_progress; // 声明一个变量用于关联进度条控件};```2.初始化进度条在对话框类中的OnInitDialog(函数中,通过m_progress变量获取进度条控件的指针,并进行初始化设置。

```cppBOOL CMyDialog::OnInitDialogCDialogEx::OnInitDialog(;//获取进度条控件的指针CProgressCtrl* pProgress =(CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);//设置进度条范围(默认为0-100)pProgress->SetRange(0, 100);//设置进度条初始位置pProgress->SetPos(0);return TRUE;}```3.更新进度条的进度在任务进行中,可以通过SetPos(函数设置进度条的当前位置,用以更新进度条的进度。

```cppvoid CMyDialog::DoTaskfor (int i = 0; i <= 100; i++)m_progress.SetPos(i);//执行任务代码...}}```4.设置进度条样式进度条控件还支持一些样式设置,可以通过SetStyle(函数进行设置。

MFC通用控件使用详解

MFC通用控件使用详解

MFC通用控件使用详解MFC(Microsoft Foundation Classes)是微软提供的一套用于开发Windows应用程序的C++类库,其中包括了许多常用的控件类,称为MFC通用控件。

本文将详细介绍MFC通用控件的使用。

例如,要使用按钮控件,首先需要在对话框资源中添加一个按钮控件,然后在对话框类的头文件中声明一个按钮变量:```cppCButton m_btnOK;```接下来,在对话框的OnInitDialog(函数中,使用DDX_Control函数将按钮资源和按钮变量关联起来:```cppDDX_Control(pDX, IDOK, m_btnOK);```现在,就可以通过按钮变量来操作按钮控件了。

可以使用按钮变量的EnableWindow(函数来启用或禁用按钮,使用SetWindowText(函数来设置按钮文本,使用GetCheck(函数来获取按钮的选中状态等等。

除了上述通用控件类,MFC还提供了专用的控件类,用于创建自定义的控件。

通过继承这些类,并重写相应的虚函数,可以创建具有自定义样式和功能的控件。

例如,通过继承CButton类,可以创建一个具有不同外观和动画效果的自定义按钮。

在使用MFC通用控件时,还需要注意以下几点。

首先,要注意控件的相对位置和大小,以便能够正确地布局和对齐。

其次,要使用合适的控件样式和扩展样式,以满足特定的需求。

例如,可以使用BS_RADIOBUTTON样式来创建单选按钮,使用LBS_MULTIPLESEL样式来创建多选列表框等等。

最后,要注意处理控件的消息和事件,以便能够及时响应用户的操作。

MFC新控件使用方法

MFC新控件使用方法

一:syslink controls超链接控件系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:实现Syslink Control超链接的效果我们知道在VS2008中,VC里面多了syslink controls,command 、split buttons 和network address controls。

对于Syslink Control的使用,将在此介绍。

目前该控件支持带HREF和ID的锚定标记<a>,MSDN如下说明:An HREF may be of any protocol, such as http, ftp, mailto, and so on. An ID is an optional name unique within a SysLink control and associated with an individual link. Links are also assigned a zero-based index according to their position within the string. This index is used to access a link.首先:建立一个对话框工程,添加一个Syslink Control控件;然后,为控件添加CLinkCtrl类的变量,这里名称为m_Link。

在对话框初始化函数OnInitDialog()里面添加以下代码:[cpp]view plaincopy1.m_Link.SetWindowText(_T("欢迎光临<a href="/" mce_href="/""/akof1314/">无幻博客</a>"));上面代码中的格式要注意,记得转义字符的使用。

MFC控件使用大全

MFC控件使用大全

MFC控件使用大全Static Text1. 透明背景、改变文本的字体颜色最好做法当然是继承CStatic然后重载OnPaint(),完全自己来画,这样能够获得最大的灵活性,但是比较麻烦。

可以使用以下方便的方法:同样创建一个CStatic的派生类,处理父窗口的反射消息WM_CTLCOLOR,即添加HBRUSH CtlColor(CDC *pDC, UINT nCtlColor)这个消息映射函数。

注意,不是HBRUSH OnCtlColor(CDC *pDC, CWnd *pWnd, UINTnCtlColor)!其实还有一个方法,就是处理父窗口的OnCtlColor(),更简单一点,但是不符合封装的原则。

HBRUSH CStatic_bg_color_sizeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);// TODO: 在此更改 DC 的任何特性if (nCtlColor == CTLCOLOR_STATIC){pDC->SetBkMode(TRANSPARENT); // 设置透明背景pDC->SetT extColor(RGB(0, 0, 255)); // 设置文本颜色return (HBRUSH)GetStockObject(HOLLOW_BRUSH); // 返回透明画刷}return hbr;}-------------------------------------------------------------------------------------------------通过上述代码,就可以得到彩色的文本以及透明的背景,但是,还存在一个问题,当该Static控件的文本内容或者属性,在运行过程中发生变化的时候,由于背景一直没有擦除(为了实现透明),会出现重影,导致文本模糊成一团。

mfc标签控件的使用

mfc标签控件的使用

1、首先创建一个基于对话框的MFC应用程序,工程名为CtrolTab。

在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件->ClassWizard->Member Variables选项卡,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl2、创建两个新的对话框资源,注意这二个新的对话框要比主对话框小,就是说要比TAB控件小,或把TAB控件拉满整个主对话框其属性作如下修改:Border:none //边界为空,这样它就没了标题栏Style :Child // 这样这个模板就可以当作另一个窗口的子窗口了。

其它如果没有必要,就不用改了。

在上面加一些控件什么的,具体操作跟普通对话框没有区别。

完成后从这两个对话框模板生成两个新的对话框类:在每一个子对话框上右键->ClassWizard->分别添加一个名为CDialgChild1与CDialgChild2的新类3、在主对话框中为新添加进来的两个类各增加一个变量:这二个对话框的类的设置:先点左边的ClassView,再点主对话框的类--这里是CCtrolTabDlg类,再点右键,再选add Member Variable--在弹出的对话框中填入Variable Type: CDialgChild1Variable Name: m_mm1点确定另一个相同如:CDialgChild1 m_mm1;CDialgChild2 m_mm2;4、在主对话框的OnInitDialog()函数中添加如下类似的代码:TCITEM item;item.mask = TCIF_TEXT;item.pszText = "第一页";m_tabctrl.InsertItem (0,&item);item.pszText = "第二页";m_tabctrl.InsertItem (1,&item);m_mm1.Create (IDD_DIALOG1,&m_tabctrl);m_mm2.Create (IDD_DIALOG2,&m_tabctrl);m_mm1.SetWindowPos (NULL,10,30,400,100,SWP_SHOWWINDOW);m_mm2.SetWindowPos (NULL,10,30,400,100,SWP_HIDEWINDOW );解释如下:两个InsertItem函数的调用是为了给标签控件增加两个标签页面,文本是标题。

mfc列表框控件的使用

mfc列表框控件的使用

MFC列表框控件的使用1. 介绍MFC(Microsoft Foundation Classes)是微软公司提供的一套用于开发Windows 桌面应用程序的C++类库。

MFC列表框控件是其中的一种常用控件,它可以用来显示和编辑列表中的项。

在本文中,我们将学习如何使用MFC列表框控件来创建、显示和操作列表中的数据项。

2. 创建列表框控件首先,我们需要在对话框资源中添加一个列表框控件。

打开Visual Studio,创建一个新的MFC应用程序项目,并选择对话框作为应用程序类型。

然后,在资源视图中双击IDD_DIALOG1以打开对话框编辑器。

在工具箱中找到列表框控件(List Box),并将其拖放到对话框上。

3. 设置属性选中刚刚添加的列表框控件,在属性窗口中可以设置其各种属性。

3.1 样式(Style)样式属性定义了列表框的外观和行为。

常见的样式包括:•单选(Single):只能选择一个项。

•多选(Multiple):可以选择多个项。

•排列(Sort):自动按字母顺序排序。

•水平滚动条(Horizontal Scrollbar):显示水平滚动条。

•垂直滚动条(Vertical Scrollbar):显示垂直滚动条。

3.2 数据源(Data)数据源属性定义了列表框中显示的数据项。

可以通过以下几种方式设置数据源:•字符串数组(String Array):将一个字符串数组赋给列表框。

•整数数组(Integer Array):将一个整数数组赋给列表框,每个整数对应一个数据项。

•数据库记录集(Database Recordset):将数据库查询结果赋给列表框。

3.3 绑定变量(Bound Variable)绑定变量属性定义了与列表框关联的变量。

当用户选择某个项时,该变量会被更新。

可以使用以下几种类型的变量:•字符串变量(String Variable):保存选中项的文本。

•整数变量(Integer Variable):保存选中项的索引。

MFC控件使用说明

MFC控件使用说明

MFC控件使用说明MFC(Microsoft Foundation Classes)是一套C++的类库,用于开发Windows应用程序。

MFC提供了丰富的控件(control)来实现图形界面(GUI)。

下面是MFC控件的使用说明。

1.控件概述:2.控件的创建:在MFC应用程序的对话框资源中可以选择并拖拽控件到界面上。

MFC 提供了DIALOG控件类表示对话框,并通过类向导(Class Wizard)自动生成控件的成员变量。

3.控件的属性和事件:每个控件都有一些属性,如字体、颜色、大小等,可以通过修改这些属性来改变控件的外观。

每个控件也都有一些事件,如鼠标点击、按键按下等,可以通过响应这些事件来处理用户的操作。

4.控件的操作:MFC提供了一系列的成员函数来操作控件,如设置文本、获取选择的项、显示隐藏控件等。

可以通过控件的成员变量来调用这些函数。

5.控件的布局和对齐:在对话框资源中可以使用布局与对齐工具来自动排列和对齐控件。

也可以通过代码来动态调整控件的位置和大小。

6.控件的自定义:如果MFC提供的控件不能满足需求,可以继承自原有控件类,并重写其成员函数来实现自定义的控件。

7.控件的扩展库:除了MFC提供的控件,还可以使用第三方控件库来增加更多的控件。

常见的控件库有DevExpress、Telerik等,提供了更丰富的控件和功能。

8.控件的样式和外观:9.控件的国际化和本地化:MFC提供了多语言支持,可以使用资源文件来实现对不同语言的支持。

通过在资源文件中提供不同语言的字符串,可以使控件显示适合不同语言环境的文本。

10.控件的错误处理:在使用MFC控件时,可能会出现一些错误,如控件无法创建、控件响应事件失败等。

可以通过正确处理这些错误,如捕获异常、输出错误信息等来保证程序的稳定性和可靠性。

总结:MFC控件提供了丰富的功能和灵活的扩展方式,可以满足大部分GUI应用程序的需求。

通过掌握MFC控件的使用,可以快速开发出功能强大、界面友好的Windows应用程序。

MFC通用控件使用详解

MFC通用控件使用详解

PWIN98/95下演练VC5中的COMMON一族辽宁省铁岭市委办公室(112000)宋立波中文PWIN98/95之所以深受广大计算机用户的青睐,除其在32位多任务、多线程和系统稳固性等核心技术的重要改进之外,更主要的还是其优秀的用户交互界面。

这就给程序设计人员提出了新的课题,如何在自己开发的应用程序中充分利用WIN98/95支持的各种高级通用控制和视,这也是学习VC编程所必须掌握的基本内容,本文将通过实例来具体演练VC5中的这些控件,其中常用的COMMON一族主要成员包括:1.表头控制 Header Control2.图像列表控制 Image List3.列表控制和视 List Control&List View4.树控制和视 Tree Control&Tree View5.标签控制和视 Tab Control&Tab View6.工具条控制 Toolbar Control7.进度条控制 Progress Control8.滑动条控制 Slider Control9.旋转按钮控制 Spin Button Control10.状态条控制 Status Bar Control其中,绝大部分通用控制在MFC类库中都存在两种封装形式,即控制类和视类,控制类主要是供直接使用控制而提供的,而视类则是通过间接使用控制而提供的,视类可以更好地把控制类集成到MFC结构中,并且使用视类可以利用引用直接对嵌套在其中的控制进行各种操作。

两者在使用方法上没有太大区别,就拿列表控制类和视类来说,当创建列表视后可通过CListCtrl& ctrlList = GetListCtrl()成员函数取得视类引用ctrlList之后,就可以利用列表视的视函数对视进行各项操作(ctrlList.Add等)。

一、PWIN98/95下演练CHeadCtrl表头控制(CHeaderCtrl)通常应用在窗口中的文本或数据的列表之上。

C++ MFC控件使用详解

C++ MFC控件使用详解

1。

mfc单文档结构2。

添加左击鼠标,按下键盘事件3。

消息:窗口消息,控件的通知消息,命令消息第5章对话框和常用控件5.1 对话框的使用5.2 控件的创建和使用方法5.4 通用对话框和消息对话框5.1对话框的使用5.1.1模式和无模式对话框模式对话框指当对话框被弹出,用户必须在对话框中作出相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。

无模式对话框指当对话框被弹出后,一直保留在屏幕上,可继续在对话框所在的应用程序中进行其它操作;需要使用对话框时,单击对话框所在的区域即可激活。

在创建和退出对话框窗口时的方式不同:创建时,模式对话框由系统自动分配内存空间,对话框退出时,对话框对象自动删除。

无模式对话框需要来指定内存,退出时还需删除对话框对象。

退出时,两种对话框所使用的终止函数不一样。

模式对话框通过调用CDialog:: EndDialog来终止,无模式对话框则是调用CWnd::DestroyWindow来终止。

函数CDiaolog::OnOK和CDiaolog::OnCancel是调用EndDialog的,因此无模式对话框必须用DestroyWindow来重载OnOK 和OnCancel两个函数。

需要正确删除表示对话框的对象。

对模式对话框,在创建函数返回后即可删除对象。

无模式对话框不是同步的,在创建函数调用后立即返回,因而不知道何时删除对象,但可以通过重载CWnd::PostNcDestroy函数并执行清除操作。

5.1.2使用对话框编辑器打开对话框编辑器将项目工作区窗口切换到ResourceView页面,双击Dialog目录下任意一个对话框ID。

或者,选择“Insert” “Resource”菜单命令(或按快捷键Ctrl+R),选择Dialog项,单击New。

在对话框中添加和编辑控件(1)控件添加的方法在对话框中添加一个控件的方法有下列几种:在控件工具栏中单击某控件,鼠标箭头在对话框内变成“十”字形状;在对话框指定位置单击鼠标左键,再拖动选择框可改变控件的大小和位置。

MFC控件使用详细教程

MFC控件使用详细教程

MFC控件使用详细教程MFC(Microsoft Foundation Classes)是微软公司开发的一套面向对象的C++类库,旨在简化Windows应用程序的开发。

其中包括了一系列的控件类,用于构建Windows用户界面。

本文将介绍MFC控件的使用,并提供详细的教程。

1.创建MFC应用程序首先,打开Visual Studio开发环境,选择创建MFC应用程序项目。

在项目向导中,选择“对话框”应用程序类型。

2.添加控件到对话框在MFC应用程序中,用户界面的主要组成部分是对话框。

打开对话框资源文件(通常是一个名为“MainDlg”的文件),可以看到空白的对话框。

从工具箱中选择所需的控件,例如按钮(Button)、文本框(Edit Control)等。

点击工具箱中的控件,然后在对话框上绘制一个矩形,即可在对话框中添加该控件。

3.设置控件属性选中添加的控件,可以在“属性”窗口中设置其属性。

例如,可以设置按钮的文本、大小、位置等。

4.响应控件事件控件可以触发各种事件,例如按钮点击事件。

为了响应这些事件,我们需要添加相应的事件处理程序。

在资源视图中,右键点击对话框资源文件,选择“添加事件处理程序”。

然后,选择要响应的事件,例如按钮的点击事件。

在出现的对话框中,输入事件处理程序的名称,并选择成员变量的名称。

点击“确定”后,Visual Studio会自动生成事件处理程序的代码。

5.控件的常用操作- 设置控件的文本:使用SetWindowText函数,例如SetWindowText("Hello");- 获取控件的文本:使用GetWindowText函数,例如CString str; GetWindowText(str);- 启用或禁用控件:使用EnableWindow函数,例如EnableWindow(FALSE)可以禁用控件;- 显示或隐藏控件:使用ShowWindow函数,例如ShowWindow(SW_HIDE)可以隐藏控件;- 设置或获取控件的位置、大小:使用SetWindowPos和GetWindowRect函数,例如SetWindowPos(NULL, x, y, width, height)可以设置控件的位置和大小;- 样式和外观设置:使用ModifyStyle和SetWindowLong函数,例如在按钮上设置图标和文字风格。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用Windows标准控件我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对话框或其它窗口中充当与用户交互的元素。

在Visual C++中,可以使用的控件分成三类:(1) Windows标准控件Windows标准控件由Windows操作系统提供,在Windows 95中还提供了一些新增的控件。

所有这些控件对象都是可编程的,我们可以使用Visual C++提供的对话框编辑器把它们添加到对话框中。

Microsoft基础类库(MFC)提供了封装这些控件的类,它们列于表6.1。

表6.1 Windows标准控件续表6.1前面提到过,在MFC中,类CWnd是所有窗口类的基类,很自然的,它也是所有控件类的基类。

Windows标准控件在以下环境下提供:•Windows 95•Windows NT 3.51及以后版本•Win32s 1.3•注意:•Visual C++ 4.2及以后版本不再支持Win32s。

(2) ActiveX控件ActiveX控件可用于对话框中,也可用于HTML文档中。

这种控件过去被称为OLE 控件。

本书将在专门的章节中来讲述关于ActiveX控件的知识。

这里仅指出ActiveX控件使用了与标准控件完全不同的接口和实现方法。

(3) 其它MFC控件类除了Windows标准控件和自己编写的或者来自于第三方软件开发商的ActiveX 控件以外,MFC还提供了另外三种控件,它们由下面的三个类进行封装:•类CBitmapButton用于创建以位图作为标签的按钮,位图按钮最多可以包括四个位图图片,分别代表按钮的四种不同状态。

•类CCheckListBox用于创建选择列表框,这种列表框中的每一项前面有一个复选框,以决定该项是否被选中。

•类CDragListBox用于创建一种特殊的列表框,这种列表框允许用户移动列表项。

在本章我们仅讲述第一类控件,即Windows标准控件。

所涉及的内容包括各个控件的使用及相应的技巧。

第一节使用对话框编辑器和ClassWizard对于大多数Windows标准控件,我们一般都使用对话框编辑器来将它们添加到对话框中。

图6. 1 在ResourceView中选择对话框IDD_DIALOGDEMO_DIALOG图6. 2 控件的Properties对话框图6. 3 对话框编辑器的Controls工具窗口在下面的过程中,我们将一个编辑框控件添加到在第四章创建的基于对话框的MFC框架应用程序的主对话框窗口中。

1. 首先,在Workspace窗口的ResourceView选项内双击DialogDemo resources\Dialog节点下的IDD_DIALOGDEMO_DIALOG图标。

上面的操作如图所示。

2. 用鼠标选中标有“要做……”的静态文本控件。

右击鼠标,从上下文菜单中选择Properties,打开如图6.2所示的对话框,在Caption文本框中输入新的控件文本:“在下面的文本框中输入一些字符”,然后将静态文本控件拖动到对话框的左上角。

3. 从Controls工具窗口(如图6.3所示,如果在你的资源编辑器中看不到该工具窗口,可以在工具条上右击鼠标,从上下文菜单中选择Controls)中选择编辑控件图标,在对话框中绘制一个编辑框控件,如图6.4所示。

在该编辑框控件的Properties窗口的General选项卡中输入其ID为IDC_EDIT。

然后在Styles选项卡下将Multiline复选框划上勾,并消除Auto HScroll复选框前的勾。

4. 右击该编辑框控件,从上下文菜单中选择ClassWizard命令,打开ClassWizard对话框,该对话框看起来如图6.5所示。

图6. 4 向对话框中添加一个编辑框控件图6. 5 ClassWizard对话框单击Member Variables选项卡,确信在Project处选择了DialogDemo,在Class name处选择了CDialogDemoDlg。

现在我们为刚才添加的编辑框控件IDC_EDIT添加一个数据映射入口。

在Control IDs处选择IDC_EDIT,单击右边的Add Viable 按钮。

打开如图6.6所示的对话框。

在Member variable name处链接变量名m_strEdit (这里m表示该变量为类CDialogDemoDlg的一个成员变量,str表明其类型为字符串,即类CString),在Category下拉列表中选择Value (另一种选择是Control,两种选择的不同将在后面的内容中讲述),在Variable type下拉列表中选择CString (还有其它很多数据类型可供选择,但由于这里编辑框中的内容为一字符串,因此CString 是最恰当的选择)。

单击OK关闭对话框。

图6. 6 为控件映射添加成员变量5. 检查一下现在的ClassWizard对话框(图6.7)与图6.5相比有何不同。

在图6.7所示的对话框中下方的Maximum characters文本框中输入50。

由字面意思可以很容易猜出其含义,即将编辑框IDC_EDIT中可能的最长字符串的大小限制为50。

单击OK关闭对话框。

图6. 7 使用ClassWizard设置数据验证方案6. 从Workspace窗口的ClassView中双击类CDialogDemoDlg的OnInitDialog 成员函数,使用下面的代码来代替位于语句return TRUE;前的// TODO注释:m_strEdit="您好! 请在这里输入一些字符串。

";UpdateData(FALSE);7. 在ClassView中双击类CDialogDemoApp的InitInstance成员函数,使用下面的代码来找替位于选择支if (nResponse == IDOK)下的//TODO注释:AfxMessageBox(dlg.m_strEdit);然后将同一成员函数中的下面的代码行删掉(或注释掉):m_pMainWnd = &dlg;8. 编译并运行该应用程序。

显示如图6.8所示的对话框。

图6. 8 示例程序DialogDemo的运行结果在图6.8所示的文本框中输入一些字符,单击“确定”。

随即弹出如图6.9所示的消息框。

该消息框复述了用户在图6.8所示的对话框中的输入。

我们还发现,在图6.8所示的对话框中,当输入字符串达到一定的长度之后,我们不可以再输入更多的字符,这是我们在前面设置了Maximum characters为50的结果。

图6. 9 以消息框的形式反馈输入的字符串下面我们来看在上面的步骤中都完成了什么。

首先我们使用资源编辑器向对话框模板中添加这些标准控件,这一步的概念很清晰,因此并不难理解。

然后,我们打开了所绘制的编辑框的Properties (属性)对话框。

先将其控件ID 设置为IDC_EDIT。

这时如果打开头文件Resource.h,就会发现宏IDC_EDIT被定义为常量1001。

不过,事实上在很多情况下我们并不需要关心每一控件的ID的具体值,而只需要记住相应的助记符。

对于这里的编辑框控件,我们只需要记住IDC_EDIT即可,而不需要关心它等于1001。

接着,我们在Styles选项卡中设置了Multiline属性,同时清除了Auto HScroll属性,两者共同作用使用得编辑框IDC_EDIT支持多行文本,并且如文本行的长度超过编辑框宽度时自动回行。

下面的步骤是最重要的一步,我们动用了功能强大的工具ClassWizard。

首先,我们将编辑框与一个CString对象相关联,这使用了一种被称为Dialog Data Exchange (DDX)的机制。

在这种机制中,我们先在处理函数OnInitDialog或对话框类的构造函数中对对话框对象的成员变量进行初始化,在对话框显示之前,框架的DDX机制将成员变量的值传递给对话框中的控件。

这个过程在成员函数DoModal或Create被调用的过程中发生。

类CDialog中对OnInitDialog成员函数的默认实现调用了类CWnd成员函数UpdateData来初始化对话框中的控件。

这时我们就可以看到前面的第6步还可在具有下面的几种变通方案:1. 将代码行m_strEdit="您好! 请在这里输入一些字符串。

";移到对基类的OnInitDialog成员函数的调用之前,即位于下面的代码之前:CDialog::OnInitDialog();2. 将代码m_strEdit="您好! 请在这里输入一些字符串。

";移到类CDialogDemoDlg的构造函数中。

对于上面的两种方法,与前面第6步中使用的方法相比,我们没有必要调用类CWnd的成员函数UpdateData。

因为该函数在类CDialog的成员函数OnInitDialog中将被调用。

这三种方法之间并没有明确的优劣之分,在很多情况下,它们分别适用于不同的场合。

这里我们说一下成员函数UpdateData。

该函数带有一个布尔类型的参数,如果该参数为FALSE,函数UpdateData将成员变量的值传递给对话框的变量;而如果该参数为TRUE,函数UpdateData将进行相反的过程。

如果用户单击了对话框中ID为IDOK的按钮,或者以TRUE为参数调用函数UpdateData,DDX机制从控件中将值传递到成员变量,同时对话框数据验证(dialog data validation,DDV)机制根据设定的验证规则验证所有数据项。

在数据交换的过程中,成员函数UpdateData先创建一个CDataExchange对象,然后调用对话框对类CDialog成员函数DoDataExchange的重载版本。

该CDataExchange对象将作为成员函数DoDataExchange的一个参数,该参数定义了数据交换的上下文。

在DoDataExchange中,我们为每一个数据成员指定了一个对DDX函数的调用。

每一个函数定义了基于由成员函数UpdateData所提供的CDataExchange参数所确定的上下文而进行的双向数据交换。

下面的代码摘自实现文件DialogDemo.cpp中对函数DoDataExchange的定义:void CDialogDemoDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CDialogDemoDlg)DDX_Text(pDX, IDC_EDIT, m_strEdit);DDV_MaxChars(pDX, m_strEdit, 50);//}}AFX_DATA_MAP}在两行注释//{{AFX_DATA_MAP和//}}AFX_DATA_MAP之间的代码部分称作数据映射。

相关文档
最新文档