09第九章 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应用程序中包含要使用的控件的头文件。
例如,要使用按钮控件,我们需要包含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控件使用详细教程MFC(Microsoft Foundation Class)是微软推出的一套用于开发Windows应用程序的类库。
它提供了许多方便易用的控件,可以快速创建用户界面。
本教程将详细介绍如何使用MFC控件来创建Windows应用程序。
第一步:创建一个MFC应用程序项目要使用MFC控件,首先需要创建一个MFC应用程序项目。
在Visual Studio中,选择"文件"->"新建"->"项目",然后选择"MFC应用程序"模板。
在项目设置中,可以选择使用对话框或视图来作为应用程序的主界面。
第二步:设置控件属性第三步:添加控件消息处理程序控件不仅仅可以显示在界面上,还可以响应用户的操作。
例如,当用户点击按钮时,可以执行一些特定的操作。
要实现这个功能,需要添加控件消息处理程序。
可以通过右键单击控件,选择"添加事件处理程序"来添加控件消息处理程序。
在生成事件处理程序的对话框中,可以选择控件的事件(如点击事件、鼠标移动事件等)和消息的处理函数。
在消息处理函数中,可以编写代码来实现特定的功能。
第四步:编写控件的功能代码在控件的消息处理函数中,可以使用MFC类库提供的函数来实现控件的功能。
例如,如果用户点击了按钮控件,可以使用CButton类的GetWindowText函数来获取按钮的文本,并使用CMessageBox类的MessageBox函数来显示一个消息框。
可以使用类似的方式来处理其他控件的事件。
例如,当用户选择了一个列表框中的项时,可以使用CListBox类的GetCurSel函数来获取选择的项的索引,并根据索引来执行特定的操作。
第五步:编译和运行应用程序完成了控件的添加和功能编写后,可以使用Visual Studio的编译和运行功能来编译和运行应用程序。
在编译过程中,会生成可执行文件和相关的依赖文件。
MFC应用程序设计中的常用控件
安康学院电子与信息工程学院实验报告一、实验目的:掌握利用MFC进行应用程序设计时,常用控件的基本方法。
Windows 二、实验题目内容及要求:编写一个用于进行成绩计算的程序。
具体要求如下:1.成绩界面中显示五个裁判所给出的等级制成绩(每个裁判利用一组单选按钮进行打分,分为“优秀”、“良好”、“中等”、“及格”、“不及格”的档次),单击界面中的“计计算出百分制的平均成绩显示在界面中的一个文本框中,在计算时,每个档算”按钮之后,次的成绩对应的百分制成绩为:95分“优秀”——“良好”——85分75分“中等”——分“及格”——65 “不及格”——45分可以进一步进行功能扩展。
要求程序的运行界面自主设计,在完成上述基本功能前提下,代码CAboutDlg獜摴晡?屨class CDialogEx : public#include{ #include??灁汰捩瑡潩?栮:#include??灁汰捩瑡潩?汄?屨publicCAboutDlg();#include慜硦楤污杯硥栮AFX_DESIGN_TIME #ifdef{ IDD = IDD_ABOUTBOX }; _DEBUG#ifdef enum#endif DEBUG_NEW new#define#endif: protected1 / 15, m_po5); IDC_RADIO21pDX, void DDX_Radio( virtual); * pDX IDC_EDIT1, m_result);DoDataExchange(CDataExchange pDX DDX_Text(,: } protected()DECLARE_MESSAGE_MAP, };(BEGIN_MESSAGE_MAP CMFCApplication4Dlg) CAboutDlg::CAboutDlg() : CDialogEx()(CDialogEx IDD_ABOUTBOX) ON_WM_SYSCOMMAND() ON_WM_PAINT{() ON_WM_QUERYDRAGICON}, (IDC_RADIO1ON_BN_CLICKED::OnBnClickedRadio1) CMFCApplication4Dlg&void, (CAboutDlg::DoDataExchange(CDataExchange* IDC_RADIO6ON_BN_CLICKED::OnBnClickedRadio6) pDX) CMFCApplication4Dlg&, { (IDC_BUTTON1ON_BN_CLICKED::OnBnClickedButton1) CMFCApplication4Dlg); CDialogEx ::DoDataExchange(pDX&,( } IDC_EDIT1ON_EN_CHANGE::OnEnChangeEdit1) CMFCApplication4Dlg&()CAboutDlg BEGIN_MESSAGE_MAP(, CDialogEx) END_MESSAGE_MAP END_MESSAGE_MAP()消息处理程序// CMFCApplication4Dlg 对话框// CMFCApplication4Dlg::CMFCApplication4Dlg(CMFCApplication4Dlg::OnInitDialog() CMFCApplication4Dlg) *CWnd pParent/*=NULL*/BOOL{ :CDialogEx::OnInitDialog();(CDialogEx IDD_MFCAPPLICATION4_DIALOG,) pParent , m_po1(0)& 0xFFF0) == , m_po2(0) IDM_ABOUTBOX((ASSERTIDM_ABOUTBOX, m_po3(0) );< 0xF000); IDM_ABOUTBOX , m_po4(0) ( ASSERT , m_po5(0)* pSysMenu = CMenu , m_result(0));{ GetSystemMenu(FALSE) NULL (pSysMenu != m_hIcon =if{ (AfxGetApp()->LoadIcon);IDR_MAINFRAMEbNameValid; } BOOLstrAboutMenu; void CStringbNameValid = ::DoDataExchange(CMFCApplication4Dlg CData strAboutMenu.) *Exchange pDX LoadString(IDS_ABOUTBOX);(bNameValid);{ ASSERT(!strAboutMenu.IsEmpty()) ); ::DoDataExchange(CDialogEx pDX if{DDX_Radio( , m_po1); IDC_RADIO1pDX,, m_po2); IDC_RADIO6, DDX_Radio(pDX); pSysMenu->(, m_po3); IDC_RADIO11, pDX DDX_Radio( AppendMenuMF_SEPARATOR pDXDDX_Radio(IDC_RADIO16, , m_po4);2 / 151) / 2; MF_STRING, pSysMenu-> AppendMenu(, strAboutMenu);IDM_ABOUTBOX dc.DrawIcon(x, y, m_hIcon);}} }else SetIcon(m_hIcon, TRUE );{ SetIcon(m_hIcon, FALSE);::OnPaint(); CDialogEx return TRUE; }}void}UINT HCURSORCMFCApplication4Dlg::OnSysCommand() CMFCApplication4Dlg::OnQueryDragIcon() lParam, nID LPARAM{ {) IDM_ABOUTBOX returnstatic_cast<HCURSOR>(m_hIcon); (( if nID & 0xFFF0) =={ }dlgAbout; CAboutDlgdlgAbout.DoModal();x1,x2,x3,x4,x5; int}elsevoid{ ::OnBnClickedRadio1() CMFCApplication4Dlg, CDialogEx::OnSysCommand({ nID );lParam}switch (m_po1)} {case 0:x1 = 95;::OnPaint() CMFCApplication4Dlg void; break 1:case{(IsIconic()) x1 = 85; if{ break ;2:dc( CPaintDC this);case, SendMessage x1 = 75; ( WM_ICONERASEBKGND>(dc.GetSafeHdc()),; break WPARAM reinterpret_cast < 3:0); case x1 = 65;break ;4:int cxIcon = case SM_CXICON x1 = 45; GetSystemMetrics();;break cyIcon = int }SM_CYICON GetSystemMetrics();} CRect rect;GetClientRect(&rect);+ - (rect.Width() = x int cxIcon 1) void/ 2;::OnBnClickedRadio6()int y = (rect.Height() - cyIcon +CMFCApplication4Dlg3 / 15}{(m_po2) switch{ switch (m_po2)0: case {x2 = 95; case 0:; break x2 = 95;1:case; break x2 = 85; case 1:; break x2 = 85;2:case break;x2 = 75; case 2:; x2 = 75; break3:; break case x2 = 65; case 3:; x2 = 65; break 4:case break;x2 = 45; case 4:;break x2 = 45;}break;(m_po3) switch }{ }0: casex3 = 95;; breakvoid1:::OnBnClickedButton1() case CMFCApplication4Dlg x3= 85; { ; break); UpdateData(TRUE2:case (m_po1) switch x3 = 75; {; case 0: break 3:x1 = 95; case x3 = 65; ; break; break 1:case4:case x1 = 85;x3 = 45; break ;; case 2:break}x1 = 75;(m_po4) switch; break{ 3:case0: case x1 = 65;x4 = 95; ; break; 4:breakcase1:x1 = 45; case x4 = 85; ; break4 / 15x5 = 75; break ;2:; casebreak 3:x4 = 75; casex5 = 65; break;3:case break;4:x4 = 65; casex5 = 45; break;4:break ;case}x4 = 45;m_result = (x1 + x2+x3+x4+x5)/5; break ;);}FALSE UpdateData( (m_po5) switch}{0: casevoid x5 = 95;::OnEnChangeEdit1() ; CMFCApplication4Dlg break 1: { casex5 = 85;};break 2:case运行结果:5 / 152.创建一个简单的调色板程序,程序界面中可以利用滚动条进行红、绿、蓝三种颜色分量值的调整,也可以直接在文本框中输入红、绿、蓝三种颜色分量值,在颜色分量值调整变化的同时,变化的颜色效果通过一个圆形色块进行现式。
mfc程序设计实例的步骤
mfc程序设计实例的步骤MFC程序设计是Windows平台下的一种经典的程序开发框架,它提供了一系列的软件工具和技术,可以帮助我们快速地开发高效、稳定、易于维护的Windows应用程序。
如果你想学习MFC程序设计,那么下面是一些基本的步骤,可以帮助你入门。
1. 准备工作:安装Visual Studio和MFC库首先,你需要安装Visual Studio开发环境,因为MFC是由微软开发的,所以它的最佳开发环境就是Visual Studio。
然后,你需要安装MFC库,这个库包含了许多用来开发Windows桌面应用程序的类、函数和工具。
2. 创建MFC应用程序项目在Visual Studio中创建一个新的MFC应用程序项目,你需要选择一个MFC应用程序的模板,然后配置一些基本信息,如项目名称、位置等。
一旦创建好了项目,你就可以开始编写代码了。
3. 设计用户界面设计好用户界面是一个重要的步骤,因为它是用户与你的应用程序交互的主要方式。
在MFC中,你可以使用类似于Visual Basic的可视化设计工具来创建Windows窗体、对话框和控件,然后使用代码来处理它们的事件和行为。
4. 编写程序代码在MFC中,你可以使用C++编程语言来编写程序代码。
你需要了解MFC库中提供的类、函数和工具,这些都是你开发应用程序的基础。
你可以使用MFC中的类来创建窗口、菜单和工具栏等控件,处理消息、事件和命令等操作。
5. 调试和测试调试和测试是开发过程中不可或缺的步骤。
你可以使用Visual Studio的调试工具来发现和解决程序中的错误和问题,确保你的程序能够正确地运行和达到预期的功能。
6. 发布和部署最后,你需要将你的应用程序发布和部署到用户的计算机上。
你可以使用Visual Studio的部署工具来创建安装程序或者自己手动进行部署。
确保你的应用程序能够在用户的计算机上正常运行和使用。
以上就是MFC程序设计的基本步骤。
当然,这只是一个大概的概述,如果你想成为一个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(Microsoft Foundation Classes)是一个用于Windows平台的C++类库,用于开发基于Windows的图形用户界面应用程序。
MFC提供了许多常用的控件,开发人员可以使用这些控件来构建各种类型的Windows应用程序。
下面是一些常用的MFC控件和它们的使用方法:1. Button控件:Button控件用于创建按钮。
创建Button控件的方法是通过调用CButton类的Create函数,指定按钮的风格、位置和大小等参数。
之后,可以使用CButton类的成员函数来设置按钮的文本、图片和事件处理程序等。
3. List Box控件:List Box控件用于创建列表框,用于显示列表项。
创建List Box控件的方法是通过调用CListBox类的Create函数,指定列表框的风格、位置和大小等参数。
之后,可以使用CListBox类的成员函数来添加、删除和获取列表项等。
5. Static控件:Static控件用于显示静态文本。
创建Static控件的方法是通过调用CStatic类的Create函数,指定静态文本的风格、位置和大小等参数。
之后,可以使用CStatic类的成员函数来设置静态文本的内容、字体和颜色等。
6. Slider控件:Slider控件用于创建滑动条。
创建Slider控件的方法是通过调用CSliderCtrl类的Create函数,指定滑动条的风格、位置和大小等参数。
之后,可以使用CSliderCtrl类的成员函数来设置滑动条的范围、当前位置和事件处理程序等。
7. Progress控件:Progress控件用于显示进度条。
创建Progress 控件的方法是通过调用CProgressCtrl类的Create函数,指定进度条的风格、位置和大小等参数。
之后,可以使用CProgressCtrl类的成员函数来设置进度条的范围、当前位置和事件处理程序等。
8. Tree Control控件:Tree Control控件用于显示树形结构。
MFC常用控件
精选2021版课件
7
CDialog类提供的函数成员
函数成员名
功能
Cdialog 构造Cdialog对象
Create 初始化CDialog对象
CreateIndirect 从内存中的对话框模板建立无模式对话 框
DoModal 显示有模式对话框
EndDialog
关闭有模式对话框
GotoDlgCtrl 把焦点移到对话框中指定的控件
精选2021版课件
14
精选2021版课件
15
列表框的基本操作
1.通用方法
通用方法用来获得和设置列表框数据的 值和属性,
所有的CListBox列表框,包括单选列表 框、多选列表框和自绘列表框等都有这 些方法。
精选2021版课件
16
2、单项选择特定方法 列表框的默认模式是单选项模式;
所有的通用方法均适用于单选项列表框。
精选2021版课件
30
使用CFileDialog对话框的步骤如下: 1.创建CFileDialog对象, CFileDialog的构造函数如下: CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY |
UpdateData(FALSE)将数据传送到对话框中,缺省的调用 发生在对话框的OnInitDialog( )创建一个有模式对话 框时。
用户可以在任何时候调用UpdateData( )进行数据交换, 该函数参数缺省值为TRUE。
示例:
显示Edit控件内容的两种方式
精选2021版课件
MFC自定义控件编写过程
MFC自定义控件编写过程MFC(Microsoft Foundation Classes)是一个C++应用程序框架,用于开发Windows应用程序。
它提供了许多已经封装好的类和方法,用于开发Windows GUI应用程序。
MFC提供了丰富的控件,但有时我们可能需要开发自定义控件来满足特定的需求。
下面是MFC自定义控件的编写过程。
1.创建MFC项目首先,打开Visual Studio,并选择创建一个新的MFC应用程序项目。
在创建向导中,选择一个适当的应用程序类型和选项,然后指定项目的名称和位置。
点击“完成”按钮创建项目。
2.设计控件界面3.为控件添加代码4.自定义控件逻辑在项目中生成自定义控件的处理逻辑。
打开控件的源文件,并为其添加相应的消息和事件处理函数。
例如,如果要在按钮控件上添加单击事件处理函数,请在对应的按钮控件的单击事件处理函数中添加代码。
您还可以根据需要添加特定的功能和逻辑。
5.编译和测试在完成自定义控件的编码后,可以进行编译测试。
选择“生成”菜单中的“解决方案”选项,或者使用快捷键Ctrl + Shift + B来编译项目。
然后选择“调试”菜单中的“以调试模式启动”选项,或者使用快捷键F5来运行项目。
检查自定义控件是否按预期工作。
6.部署自定义控件一旦自定义控件编写完成并通过了测试,可以将其部署到其他项目中使用。
将自定义控件的源文件和相关资源文件复制到新的项目中,然后在新的项目中按照相同的方式创建控件界面并添加代码。
总结:MFC自定义控件的编写过程可以简单概括为创建MFC项目、设计控件界面、添加代码、自定义控件逻辑、编译和测试以及部署自定义控件。
通过遵循这个过程,我们可以轻松地在MFC应用程序中开发和使用自定义控件,以满足特定需求。
编写自定义控件需要熟悉MFC框架和相关的C++编程知识,对于有经验的开发人员来说是相对简单的任务。
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控件使用大全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控件使用说明MFC(Microsoft Foundation Class)是一套面向C++开发的框架,用于快速开发图形用户界面(GUI)应用程序。
MFC提供了一套丰富的控件(Controls),用于实现各种功能和交互效果。
本文将介绍一些常用的MFC控件的使用说明。
1. Button 控件:Button控件用于显示一个按钮,用户点击按钮时会触发相应的事件处理函数。
使用方式如下:-在对话框资源中添加一个按钮控件,并为其设置ID号。
- 在对话框类的变量中声明按钮控件的成员变量,使用CButton类型。
- 在OnInitDialog函数中使用GetDlgItem函数获取按钮控件的指针,并使用它调用相应的函数,如SetWindowText设置按钮的文本内容。
3. List Box 控件:List Box控件用于显示一个列表,用户可以选择其中的项。
使用方式如下:-在对话框资源中添加一个列表框控件,并为其设置ID号。
- 在对话框类的变量中声明列表框控件的成员变量,使用CListBox类型。
- 在OnInitDialog函数中使用GetDlgItem函数获取列表框控件的指针,并使用它调用相应的函数,如AddString添加项,SetCurSel设置选中项。
-在对话框资源中添加一个组合框控件,并为其设置ID号。
- 在OnInitDialog函数中使用GetDlgItem函数获取组合框控件的指针,并使用它调用相应的函数,如AddString添加项,SetCurSel设置选中项。
5. Check Box 控件:Check Box控件用于显示一个复选框,用户可以选中或取消选中。
-在对话框资源中添加一个复选框控件,并为其设置ID号。
- 在对话框类的变量中声明复选框控件的成员变量,使用CButton类型。
- 在OnInitDialog函数中使用GetDlgItem函数获取复选框控件的指针,并使用它调用相应的函数,如SetCheck设置选中状态。
MFC各种控件属性介绍
MFC各种控件属性介绍MFC(Microsoft Foundation Classes)是一组用于开发Windows应用程序的C++类库。
它提供了许多用于创建GUI(Graphical User Interface)界面的控件,这些控件可以用于显示和操作数据。
下面是对一些常见的MFC控件属性的介绍:1. Button(按钮)控件:Button控件用于触发事件或执行一些操作。
它有几个常用的属性,如按钮文本(Caption),按钮样式(Style),按钮位置(Position)等。
样式属性可以设置按钮的外观(如3D效果、边框等),并可以选择不同的按钮类型(如radio、checkbox等)。
3. List Box(列表框)控件:List Box控件用于显示一系列列表项。
它有属性用于设置列表框的大小(Size),位置(Position),以及显示模式(SelectionMode)等。
其他属性还包括排序(Sort),可见项数(VisibleItems)以及是否多选(Multiselect)等。
5. Check Box(复选框)控件:Check Box控件用于允许用户选择一个或多个选项。
它有属性用于设置复选框的大小(Size),位置(Position),选择状态(Checked),以及显示文字(Caption)等。
6. Radio Button(单选按钮)控件:Radio Button控件用于只允许用户从一组选项中选择一个。
它有属性用于设置单选按钮的大小(Size),位置(Position),选择状态(Checked),以及显示文字(Caption)等。
一组互斥的单选按钮应该放在同一个命名容器内。
7. Slider(滑动条)控件:Slider控件用于接受用户通过滑动操作选择一个数值。
它有属性用于设置滑动条的大小(Size),位置(Position),范围(Range),以及当前值(Value)等。
其他属性还包括方向(Orientation)和是否显示刻度线(TickMarks)等。
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控件使用详细教程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函数,例如在按钮上设置图标和文字风格。
MFC基本控件
在知道按钮ID的前 在知道按钮 的前 提下, 提下,还可使用与 按钮有关的CWnd 按钮有关的 成员函数来设置或 查询按钮状态
MFC还提供了一个 还提供了一个CBitmapButton的类, 的类, 还提供了一个 的类 允许用户以图标的方式显示按钮, 允许用户以图标的方式显示按钮,它是 在CButtong下派生的 下派生的
TRUE; return TRUE; }
10进 10进 制数
20
(3) 给滚动条消息添加代码 void CMy9_2Dlg::OnVScroll(……) { // TODO: Add your message handler code here char sPos[10]; int iNowPos; switch(nSBCode) { if(pScrollBar==&m_Scrollbar) { case SB_THUMBTRACK: //拖动滑块 m_Scrollbar.SetScrollPos(nPos); itoa(nPos,sPos,10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos);
21
case SB_LINEDOWN: //单击滚动条向下的箭头 iNowPos=m_Scrollbar.GetScrollPos(); iNowPos=iNowPos+1; if(iNowPos>20) iNowPos=20; m_Scrollbar.SetScrollPos(iNowPos); itoa(m_Scrollbar.GetScrollPos(),sPos,10); m_Edit.SetSel(0,-1); m_Edit.ReplaceSel(sPos); break;
18
(2) 应用程序的代码编程部分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
列表框和CListBox类 类 列表框和
通 知 发送条件 消息映射宏 相关* 否 否 否 是 是 是
LBN_SETFOCUS LBN_KILLFOCUS LBN_ERRSPACE LBN_DBLCLK
列表框获得输入焦点 ON_LBN_SETFOCUS 列表框失去输入焦点 ON_LBN_KILLFOCUS 内存不足操作失败 项目被双击 ON_LBN_ERRSPACE ON_LBN_DBLCLK ON_LBN_SELCHANGE ON_LBN_SELCANCEL
组框
用BS_GROUPBOX样式创建的 不接受输入,也不向父窗口发送消息 给控件组描绘可见的轮廓
列表框和CListBox类 类 列表框和
样 式 说 明 LBS_STANDARD LBS_SORT LBS_NOSEL LBS_NOTIFY LBS_DISABLENOSCROLL LBS_MULTIPLESEL LBS_EXTENDEDSEL LBS_MULTICOLUMN LBS_OWNERDRAWVARIABLE LBS_OUNERDRAWFIXED LBS_USETABSTOPS LBS_NOREDRAW LBS_HASSTRINGS LBS_WANTKEYBOARDINPUT LBS_NOINTEGRALHEIGHT 创建“标准‘”列表框,组合了WS_BORDER、WS_VSCROLL、LBS_NOTIFYL和 BS_SORT 将加入列表框中的项目按字母顺序排序 创建项目只能查看而不能选择的列表框 创建在选项被更改或项目被双击时通知父窗口的列表框 再不需要时去掉列表框的滚动条,若无此,不需要的滚动条会被隐藏而不是被拿掉 创建多选列表框 给多列列表框添加扩展选项支持 创建多列列表框 创建自制列表框,项高度不同 创建自制列表框,项高度相同 配置列表框展开项文本中的制表符 创建项目被添加或删除后不进行重画自身的列表框 创建“记得”所添加字符串的列表框。常规列表框在默认时局由此样式,而自制列表框没 有 创建当键按下时给父窗口发送WM_VKEYTOITEM或WM_CHARTOITEM消息的列表框 允许列表框具有人以高度。默认状态下,Windows将列表框的高度设置为项目高度的倍数
BS_LEFTTEXT BS_RIGHTBUTTON BS_LEFT BS_CENTER BS_RIGHT BS_TOP BS_VCENTER BS_BOTTOM BS_MULTLINE
命令按钮
用BS_PUSHBUTTON样式创建的 ON_BN_CLICKED(IDC_BUTTON,OnButton Clicked) afx_msg void OnButtonClicked();
列表框和CListBox类 类 列表框和
m_wndListBox.AddString(string); m_wndListBox.InsertString(nIndex,string); 两者都返回基于0的项目索引号,如果返回 LB_ERRSPACE说明列表框已满,如果返回 LB_ERR说明由于某种原因插入失败 m_wndListBox.DeleteString(nIndex) m_wndListBox.ResetContent全部删除
用滚动条将控件水平滚动 ON_EN_HSCROLL 用滚动条将控件垂直滚动 ON_EN_VSCROLL 无法输入字符 ON_EN_MAXTEXT
EN_ERRSPACE 由于内存不足而操作失败 ON_EN_ERRSPACE
组合框和CCombo类 类 组合框和
组合框分类
– – –
简单型 下拉型 下拉列表型
顺序创建同组单选按钮 将WS_GROUP样式赋予第一个单选按钮 将WS_GROUP样式赋予第一个非同组控件
单选按钮
m_wndRadioButton1.Create(_T(“COM1”),WS_CHILD|WS_VISIBL E|WS_GROUP|BS_AUTORADIOBUTTON,rect1,this,IDC_COM1); m_wndRadioButton2.Create(_T(“COM2”),WS_CHILD|WS_VISIBL E|BS_AUTORADIOBUTTON,rect2,this,IDC_COM2); m_wndRadioButton3.Create(_T(“COM3”),WS_CHILD|WS_VISIBL E|BS_AUTORADIOBUTTON,rect3,this,IDC_COM3); m_wndRadioButton4.Create(_T(“COM4”),WS_CHILD|WS_VISIBL E|BS_AUTORADIOBUTTON,rect4,this,IDC_COM4); m_wndRadioButton1.SetCheck(BSK_CHECKED); m_wndCheckBox.Create(_T(“Save settings on exit”),WS_CHILD|WS_VISIBLE|WS_GROUP|BS_AUTOCHECKB OX,rectCheckBox,this,IDC_SAVESETTINGS);
编辑控件和CEdit类 类 编辑控件和
样 ES_LEFT ES_CENTER ES_RIGHT ES_AUTOHSCROLL ES_AUTOVSCROLL ES_MULTILINE ES_LOWERCASE ES_UPPERCASE ES_PASSWORD ES_READONLY ES_NOHIDESEL ES_WANTRETURN 式 在控件中左对齐文本 在控件中文本居中 在控件中右对齐文本 允许编辑控件垂直滚动但没有水平动条。若要添加水平滚动条要包含 WS_HSCROLL 允许编辑控件水平滚动但没有垂直滚动条。若要添加垂直滚动条要包含 WS_VSCROLL 创建多行编辑控件 用小写字符显示所有字符 用大写字母显示所有字符 显示星号通配符代替输入的字符 创建文本不能被编辑的编辑控件 在控件失去输入焦点时防止编辑控件隐藏所选内容 对话框中的多行编辑控件通过回车键而不是调用默认的按钮来插入换行符 说 明
SS_LEFTNOWORDWRAP 文本左对齐但不换行 SS_CENTERIMAGE SS_SUNKEN 文本垂直方向居中 控件被一个下陷边缘围绕
静态矩形控件
样 式 说 明
SS_BLACKFRAME SS_BLACKRECT
用系统颜色COLOR_WINDOWFRAME(默认为黑色)画空心矩形 用系统颜色COLOR_WINDOWFRAME(默认为黑色)画实体矩形
静态图像控件
样 式 说 明
SS_BITMAP
显示位图的静态控件
SS_ENHMETAFILE 显示元文件的静态控件 SS_ICOcon(hIcon);
编辑控件和CEdit类 类 编辑控件和
编辑控件分类
– –
单行 多行
编辑控件限制60KB以内的文本
单选按钮
用BS_RADIOBUTTON或 BS_AUTORADIBUTTON样式创建的 ON_BN_CLICKED(IDC_RADIOBUTTON,On RadioButtonClicked) afx_msg void OnRadioButtonClicked();
单选按钮
单选按钮分组
– – –
通用控件
传统控件
控件类型 按钮 列表框 编辑控件 组合框 滚动条 静态控件 WNDCLASS “BUTTON” “LISTBOX” “EDIT” “COMBOBOX” “SCROLLBAR” “STATIC” MFC类 CButton ClistBox CEdit CComboBox CScrollBar CStatic
LBN_SELCHANCE 项目被修改 LBN_SELCANCEL 项目被取消 *注:是否与LBS_NOTIFY相关
静态控件与CStatic类 类 静态控件与
静态控件分类
– – –
文本 矩形 图像
静态文本控件
样 SS_LEFT SS_CENTER SS_RIGHT 式 说 文本左对齐 文本水平方向中间对齐 文本右对齐 明
MFC程序设计 程序设计
控
件
作 者:李 季
主要内容
控件分类 按钮和CButton类 列表框和CListBox类 静态控件和CStatic类 编辑控件和CEdit类 组合框和CCombo类 滚动条和CScrollBar类
控件分类
传统控件
– – – – – –
按钮 列表框 静态控件 编辑控件 组合框 滚动条
SS_ETCHEDFRAME 带有蚀刻框的空心矩形 SS_ETCHEDHORZ SS_ETCHEDVERT SS_GRAYFRAME SS_GRAYRECT SS_WHITEFRAME SS_WHITERECT 顶边和底边是蚀刻线的空心矩形 左边和右边是蚀刻线的空心矩形 用系统颜色COLOR_BACKGROUND(默认为灰色)画空心矩形 用系统颜色COLOR_BACKGROUND(默认为灰色)画实体矩形 用系统颜色COLOR_BACKGROUND(默认为白色)画空心矩形 用系统颜色COLOR_BACKGROUND(默认为白色)画实体矩形
按钮和CButton类 类 按钮和
样 式 说 明 将伴随单选按钮或复选框的文本从按钮右 边(默认)向左边移动 与BS_LEFTTEXT相同 左对齐控件中的按钮文本 在控件矩形中将按钮文本对中 右对齐控件中的按钮文本 将按钮文本置于控件矩形的顶部 将按钮文本置于控件矩形垂直方向的中间 将按钮文本置于控件矩形的底部 允许一行放不下的文本分成两行或多行
复选框
用BS_CHECKBOX、BS_AUTOCHECKBOX、 BS_3STATE或BS_AUTO3STATE样式创建的 ON_BN_CLICKED(IDC_CHECKBOX,OnButt onClicked) afx_msg void OnCheckBoxClicked();
复选框
BS_CHECKBOX、BS_AUTOCHECKBOX有两种状 态:选中和未选中 可用CButton::SetCheck (BST_CHECKED/BST_UNCHECKED)来选中或取消 选中 BS_3STATE、BS_AUTO3STATE有三种状态:选中、 未选中和不确定 可用CButton::SetCheck (BST_CHECKED/BST_UNCHECKED/BST_INDETE RMINATE)来选中、取消选中或不确定 BS_AUTOx样式可自动切换开关状态来响应按钮的单 击