MFC对话框程序中的各组件常用方法

合集下载

mfc dialog scrollbar 用法

mfc dialog scrollbar 用法

MFC对话框滚动条的使用1. 简介MFC(Microsoft Foundation Class)对话框是Windows评台上一种常见的GUI(Graphical User Interface)界面,可以用于创建各种窗口应用程序。

滚动条是对话框中常用的控件之一,可以用于滚动显示大量内容,如文本、图片等。

本文将介绍在MFC对话框中如何使用滚动条控件。

2. 添加滚动条控件在MFC对话框中添加滚动条控件非常简单。

打开对话框资源编辑器,选中要添加滚动条的对话框,然后在工具栏中选择“滚动条”控件,将其拖放到对话框中即可。

3. 设置滚动条属性添加滚动条控件后,我们可以通过双击滚动条控件或者右键点击属性来设置其各种属性。

常见的滚动条属性包括滚动条的位置、大小、范围、页面大小、滑块大小等。

根据实际需求,可以对这些属性进行调整,以满足程序的需求。

4. 响应滚动条消息一旦滚动条控件添加到对话框中并设置好属性,接下来就是响应滚动条的消息。

在MFC中,我们可以通过重载对话框类的OnVScroll和OnHScroll函数来响应垂直滚动和水平滚动的消息。

在这两个函数中,我们可以根据滚动条的位置来更新对话框中其他控件的显示内容,从而实现滚动显示的效果。

5. 示例代码以下是一个简单的示例代码,演示了在MFC对话框中使用垂直滚动条控件的方法:```C++void CMyDialog::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){// 获取滚动条控件的当前位置int nCurPos = pScrollBar->GetScrollPos();// 根据滚动条的消息进行相应处理switch (nSBCode){case SB_TOP:// 处理滚动到顶部的情况break;case SB_BOTTOM:// 处理滚动到底部的情况break;case SB_LINEUP:// 处理向上滚动一行的情况break;case SB_LINEDOWN:// 处理向下滚动一行的情况break;case SB_PAGEUP:// 处理向上滚动一页的情况break;case SB_PAGEDOWN:// 处理向下滚动一页的情况break;case SB_THUMBTRACK:// 处理拖动滑块的情况break;default:break;}CDialog::OnVScroll(nSBCode, nPos, pScrollBar); }```在这个示例代码中,我们重载了对话框类的OnVScroll函数,通过获取滚动条的当前位置和消息类型,实现了对滚动条消息的处理。

VC++MFC 常用控件使用方法

VC++MFC 常用控件使用方法

VC++MFC 常用控件使用方法4.1 Button按钮窗口(控件)在MFC中使用CButton表示,CButton包含了三种样式的按钮,Push Button,Check Box,Radio Box。

所以在利用CButton对象生成按钮窗口时需要指明按钮的风格。

创建按钮:BOOL CButton::Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );其中lpszCaption是按钮上显示的文字,dwStyle为按钮风格,除了Windows风格可以使用外(如WS_CHILD|WS_VISUBLE|WS_BORDER)还有按钮专用的一些风格。

BS_AUTOCHECKBOX 检查框,按钮的状态会自动改变 Same as a check box, except thata check mark appears in the check box when the user selects the box; the checkmark disappears the next time the user selects the box.BS_AUTORADIOBUTTON 圆形选择按钮,按钮的状态会自动改变 Same as a radio button, except that when the user selects it, the button automatically highlights itself andremoves the selection from any other radio buttons with the same style in the same group.BS_AUTO3STATE 允许按钮有三种状态即:选中,未选中,未定 Same as a three-state check box, except that the box changes its state when the user selects it.BS_CHECKBOX 检查框 Creates a small square that has text displayed to its right (unless this style is combined with the BS_LEFTTEXT style).BS_DEFPUSHBUTTON 默认普通按钮 Creates a button that has a heavy black border.The user can select this button by pressing the ENTER key. This style enables theuser to quickly select the most likely option (the default option).BS_LEFTTEXT 左对齐文字 When combined with a radio-button or check-box style, the text appears on the left side of the radio button or check box.BS_OWNERDRAW 自绘按钮 Creates an owner-drawn button. The framework calls the DrawItem member function when a visual aspect of the button has changed. Thisstyle must be set when using the CBitmapButton class.BS_PUSHBUTTON 普通按钮 Creates a pushbutton that posts a WM_COMMAND message to the owner window when the user selects the button.BS_RADIOBUTTON 圆形选择按钮 Creates a small circle that has text displayed to its right (unless this style is combined with the BS_LEFTTEXT style). Radio buttons are usually used in groups of related but mutually exclusive choices.BS_3STATE 允许按钮有三种状态即:选中,未选中,未定 Same as a check box, except that the box can be dimmed as well as checked. The dimmed state typically is used toshow that a check box has been disabled.rect为窗口所占据的矩形区域,pParentWnd为父窗口指针,nID为该窗口的ID值。

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中一些控件的使用方法

二、通过空间ID来设置是否选中((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);//不选上((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck();返回1表示选上,0表示没选上3. 按CTRL+D,保证同一组内的radio的tab序号是连续的;调整tab 序号的方式是:鼠标点击数字,比如先点3,然后点7,则3和7会交换,即radio1变为7,radio5变为3;默认第一个radio被选中,即radio1被选中三、通过控件子类化关联一个congtrol型变量(子类化),好ctrl+W(即打开classwizard),点开Member Variables,咦?怎么没有IDC_RADIO1这个ID?原来是没有分组。

因为radio button 通常都是成组使用的,在一组里面是互斥的。

取消,回到对话框资源面板,右键Radio1查看属性把Group选上,那么,Radio1和Radio2就是一组了(怎么知道他们是一组的?后面说)。

此时,就可以为Radio1增加一congtrol型变量m_ctrlRadio1了。

如下:m_ctrlRadio1.SetCheck(TRUE);同样可以使用GetCheck()获取状态。

在定义控件变量时,默认变量初值为-1,表示此组的任何RadioButton均不被选中,如果需要改变初始默认按钮的设置情况,只需要在对话框的构造函数中把变量初值设为相应的变量值即可。

下面附代码和效果图例如构造函数:CRadioButtonInstanceDlg::CRadioButtonInstanceDlg(CWnd* pParent ): CDialogEx(CRadioButtonInstanceDlg::IDD, pParent){m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);//设置RadioButton初始默认值。

实验八 MFC中的对话框及控件(二)

实验八 MFC中的对话框及控件(二)

实验八MFC中的对话框及控件(二)实验目的掌握常用的控件使用方法以及基于对话框的应用程序的开发实验内容1、编辑框的使用2、选择按钮的使用3、下拉列表的使用4、按钮的使用5、基于对话框的应用程序开发一、编辑框的使用[实验步骤]1、新建一个MFC单文档项目;2、在资源选项卡中插入一个自己的对话框3、新建一个对话框模板4、在对话框中添加2个静态文本控件和2个编辑框控件。

注意这2个编辑框控件的ID5、通过Classwizzard添加数据成员。

在Classwizzard弹出的对话框中选择新建你这个对话框的类,取名叫“Cmydlg”,当然你也可以取其他名字选择成员变量选项卡,然后双击某个编辑框的ID,设置对应数据成员名字及类型。

6、在你的工程的view类的头部通过包含对话框类的头文件#include “mydlg.h”包含你所建的对话框类。

注意:如果你改了对话框类的名字,看看相应的项目里新增的那个类的头文件名7、在View类中增加2个变量CString myname;int myage;8、通过Classwizzard增加一个鼠标左键消息响应函数,并在函数中增加如下代码:void CT estView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultCmydlg dlg;if(dlg.DoModal()==IDOK){myname=dlg.m_name;myage=dlg.m_age;Inavalidate();}CView::OnLButtonDown(nFlags, point);}9、在OnDraw函数里增加如下显示内容的代码CString str;str.Format("我的姓名是%s",myname);pDC->TextOut(10,10,str);str.Format("我的年龄是%d",myage);pDC->TextOut(10,30,str);10、编译运行程序,在工作视图区点鼠标左键二、选择按钮的使用[实验步骤]1、新建一个MFC单文档项目;2、在资源选项卡中插入一个自己的对话框3、新建一个对话框模板4、在对话框中添加3个单选框控件。

MFC控件使用方法

MFC控件使用方法

MFC控件使用方法VC2012下MFC程序各控件的常用方法分类:vc控件2013-02-16 16:32 94人阅读评论(0) 收藏举报一下控件的用法全部在VC2012下调试通过,特发文收藏(部分内容来自或参考自网络):Static Text:将ID号改成唯一的一个,如:IDC_XX,然后进一次类向导点确定产生这个ID,之后更改Caption属性:GetDlgItem(IDC_XX)->SetWindowText(L"dsgdhfgdffd");设置字体:CFont *pFont= new CFont;pFont->CreatePointFont(120,_T("华文行楷"));GetDlgItem(IDC_XX)->SetFont(pFont);Edit Control:设置文本:SetDlgItemT ext(IDC_XX,L"iuewurebfdjf");获取所有输入:建立类向导创建一个成员变量(假设是shuru1,shuru2……)类型选value,变量类型任选。

UpdateData(true);GetDlgItem(IDC_XX)->SetWindowText(shuru1);第一句更新所有建立了变量的对话框组件,获取输入的值。

第二句将前面的IDC_XX的静态文本内容改为shuru1输入的内容。

若类型选用control:1.设置只读属性:shuru1.SetReadOnly(true);2.判断edit中光标状态并得到选中内容(richedit同样适用)int nStart,nEnd;CString strTemp;shuru1.GetSel(nStart,nEnd);if(nStart== nEnd){strTemp.Format(_T("光标在%d" ),nStart);AfxMessageBox(strTemp);}else{//得到edit选中的内容shuru1.GetWindowText(strTemp);strTemp= strTemp.Mid(nStart,nEnd-nStart);AfxMessageBox(strTemp);}其中nStart和nEnd分别表示光标的起始和终止位置,从0开始。

MFC编程总结各种控件使用说明

MFC编程总结各种控件使用说明

MFC各种控件的使用说明把整数显示为时间格式的方法:Int minute=5; int sec=5;CString strTime;strTime.Format("%02d:%02d",minute,sec);GetDlgItem(IDC_STAT_DIS)->SetWindowText(strTime);定时器的使用方法:在函数BOOL CDingshiqiDlg::OnInitDialog(){SetTimer(1,1000,NULL);}添加语句SetTimer(1,1000,NULL);定时器1秒钟中断一次.然后添加消息WM_TIMER对应的消息函数:void CDingshiqiDlg::OnTimer(UINT nIDEvent){}播放系统声音的方法:在头文件添加这两句#include<mmsystem.h>#pragma comment (lib,"winmm.lib")然后调用函数: PlaySound("SystemStart",NULL,SND_ALIAS|SND_ASYNC);VC++6.0控件工具箱:2 图形控件(picture):常用于显示位图(Bitmap)和图标(Icon)3 静态文本(Static Text):MFC提供了CStatic类支持静态控件。

(1)更改该控件上字体的方法是:该控件的ID为IDC_STATIC1,IDC_STATIC2.CFont * f1;f1 = new CFont;f1 -> CreateFont( 25 , // nHeight15, // nWidth0 , // nEscapement0 , // nOrientationFW_BOLD, // nWeightFALSE , // TRUEbItalicFALSE, // bUnderline0 , // cStrikeOutDEFAULT_CHARSET, //ANSI_CHARSET nCharSetOUT_DEFAULT_PRECIS, // nOutPrecisionCLIP_DEFAULT_PRECIS, // nClipPrecisionDEFAULT_QUALITY, // nQualityDEFAULT_PITCH | FF_SWISS, // nPitchAndFamily_T( " 宋体" )); // lpszFacGetDlgItem(IDC_STATIC1)-> SetFont(f1);GetDlgItem(IDC_STATIC2)-> SetFont(f1);另一种改变字体大小的方法: 在函数外定义CStatic m_static;CFont font;m_static.SubclassDlgItem(IDC_STAT_DIS,this);LOGFONT log;GetObject(::GetStockObject(DEFAULT_GUI_FONT),sizeof(log),&log);log.lfHeight=300; //改log.lfWidth=120; //改log.lfCharSet=GB2312_CHARSET;lstrcpy(log.lfFaceName, _T("宋体"));font.CreateFontIndirect(&log);m_static.SetFont(&font);(2) 把整数显示在该控件的方法:IDC_STAT_DIS为控件IDInt minute=5,sec=5;CString strTime;strTime.Format("%02d:%02d",minute,sec);GetDlgItem(IDC_STAT_DIS)->SetWindowText(strTime);另外一种显示的方法:CStatic*pst=(CStatic *)GetDlgItem(IDC_STAT_DIS);pst->SetWindowText("00:00");4 编辑框(Edit Box):MFC提供了CEdit类支持编辑框控件。

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常用控件使用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_对话框和常用教程

MFC_对话框和常用教程

第五章对话框和常用控件对话框是Windows应用程序中最重要的用户界面元素之一,是与用户交互的重要手段,在程序运行过程中,对话框可用于扑捉用户的输入信息或数据。

对话框是一个特殊类型的窗口,任何对窗口进行的操作(如:移动、最大化、最小化等)都可在对话框中实施,一般来说,在对话框中通过各种控件(如:按钮、编辑框、列表框、组合框等)来和用户进行交互。

控件是在系统内部定义的用于和用户交互的基本单元。

一、对话框的使用Visual C++提供的对话框编辑器能“可视”地进行设计、编辑,并可用ClassWizard为对话框从CDialog基类中派生一个类,MFC的CDialog类封装了用于对话框的显示、关闭等操作的许多功能函数,例如:DoModal函数用来显示模式对话框并返回用户操作的结果。

1、模式对话框(为186附加举例页)所谓模式对话框是指,当对话被弹出时,用户必须在对话框中进行相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。

平常我们所见到的对话框大多是模式对话框。

例:模式对话框(通过菜单命令弹出)1)建一个单文档(SDI)应用程序2)创建对话框模板Insert→Resource→选中Dialog→单击New拖过一个静态文本,鼠标对准它,按右键点properties改标题为“新建模式对话框”。

3)鼠标右键对准对话框的任何位置单击,选择properties选项,设置ID为IDD_MYDIALOG 4)给对话框创建类双击新建对话框的任何位置,单击OK,写类名为“CMyDlg”,保证”CDialog”作为该类的基类。

5)创建菜单命令:a)打开资源编辑器的菜单项Menub)双击IDR_MAINFRAMEc)双击右边空白菜单,点开pop_up(让它是空白),在名字处写”弹出对话框(&A)”,ID 处写ID_PUPDIALOG6)将菜单命令连接到主框架程序中,完成ID_PUPDIALOG的消息映射:View→ClassWizard→保证Class name里是CMainFrame,在ObjectIDs里找到ID_PUPDIALOG点黑→Messages里(右边)点COMMAND建立主框架对象方法并加代码:void CMainFrame::OnPupdialog(){ CMyDlg MyDlg;MyDlg.DoModal(); //DoModal()是CDialog类成员函数,通过调用该//函数将显示对话框。

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 示列框的事件用法

mfc 示列框的事件用法MFC (Microsoft Foundation Classes) 是 Microsoft 提供的一套 C++ 类库,用于简化 Windows 应用程序的开发。

MFC 提供了一套丰富的类和函数,用于处理 Windows 消息、控件、文档和视图等。

下面是一个简单的 MFC 示例,展示了一个基于对话框的应用程序中如何使用控件事件。

1. 创建一个新的 MFC 对话框应用程序:在 Visual Studio 中,选择 "File" -> "New" -> "Project"。

在模板列表中,选择 "MFC Application"。

输入项目名称和位置,然后点击 "OK"。

2. 添加一个编辑框控件:在对话框编辑器中,从工具箱拖动一个"Edit Box" 控件到对话框上。

3. 处理编辑框的 "Text Changed" 事件:打开对话框类的头文件 (通常是 ``)。

在类声明中添加一个函数声明,例如:`afx_msg void OnEnChangeEdit1();`。

在类声明中添加一个消息映射宏,例如:`BEGIN_MESSAGE_MAP(CYourDialogName, CDialogEx) ...ON_EN_CHANGE(IDC_EDIT1, &CYourDialogName::OnEnChangeEdit1) END_MESSAGE_MAP()`。

4. 实现 "Text Changed" 事件处理函数:打开对话框类的源文件 (通常是 ``)。

在类的实现部分,添加函数的实现,例如:`void CYourDialogName::OnEnChangeEdit1() { ... }`。

在此函数中,你可以添加代码来处理编辑框内容变化时需要执行的操作。

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控件使用说明

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列表框控件的使用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应用程序的开发。

其中包括了一系列的控件类,用于构建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对话框使用

mfc对话框使用

mfc对话框使用MFC对话框使用指南MFC (Microsoft Foundation Classes) 是微软开发的一套类库,用于快速实现 Windows 程序的开发。

其中,对话框是 Windows 程序中常用的图形用户界面,本文将介绍 MFC 对话框的使用方法。

一、创建对话框1.在 Visual Studio 中选择 File ➡️ New ➡️ MFC Application,选择对话框类型,点击 Finish。

2.在弹出的对话框属性编辑器中,可以更改对话框的标题、大小、背景颜色等属性。

3.在对话框上添加控件,如按钮、文本框、列表框等。

二、控件的属性设置1.选中控件,右键点击 Properties,弹出控件属性编辑器。

2.在格式中设置控件的字体、颜色、大小等。

3.在常规中设置控件的 ID 号,和提示信息等。

4.在事件中设置控件的响应事件,如单击事件、双击事件等。

三、控件的事件响应1.打开类向导,选择类视图中的一个控件,添加消息映射。

2.在消息映射中设置事件响应函数。

3.在事件响应函数中实现相应的逻辑功能。

四、对话框操作1.打开类向导,选择类视图中的对话框。

2.添加成员变量,获取对话框上的控件对象。

3.在对话框中添加响应函数,如确定按钮、取消按钮等。

4.在响应函数中实现对话框的操作功能,如关闭对话框、保存数据等。

五、运行程序1.生成程序,运行程序。

2.在程序中测试对话框、控件的交互功能。

以上的 MFC 对话框使用指南仅作为基础的入门介绍,通过掌握以上的操作步骤和方法,可以快速地了解和使用 MFC 对话框的功能,并应用到自己的开发项目当中。

同时,对于技术提升有兴趣的读者,还可以进一步学习如何使用代码实现更多的对话框功能和复杂的交互逻辑。

MFC常用控件

MFC常用控件

MFC常⽤控件按钮控件按钮控件包括命令按钮(Button)、单选按钮(Radio Button)和复选框(Check Box)等。

按钮控件会向⽗窗⼝发送通知消息,最常⽤的通知消息莫过于BN_CLICKED和BN_DOUBLECLICKED了。

⽤户在按钮上单击⿏标时会向⽗窗⼝发送BN_CLICKED消息,双击⿏标时发送BN_DOUBLECLICKED消息。

命令按钮(Button)在⼀个对话框中,Button可以定义⼀个默认按钮,这只要选中按钮属性中的“Default”选项。

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

void CWindowDlg::OnBnClickedBtnTest1(){MessageBox(L"提⽰1");}void CWindowDlg::OnBnClickedBtnTest2(){MessageBox(L"默认按钮属性设置为true");}//测试2按钮的默认属性设置为true,当在对话框中点击enter键时,弹出对话框:默认按钮属性设置为true动态⽣成⼀个Button控件的⽅式如下:头⽂件中定义CButton对象CButton m_btnTest1;执⾏CButton::Create 创建⼀个CButton对象:BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );int CWindowDlg::OnCreate(LPCREATESTRUCT lpCreateStruct){m_btnTest1.Create(L"哈哈哈", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(20, 100, 100, 160), this, IDC_BTN_HELLO1);//pParentWnd指⽰拥有按钮的⽗窗⼝(this为当前对话框对象),不能为NULL;//nID指定与按钮关联的ID号,⽤于按钮控件的事件处理( IDC_BTN_HELLO1)}stdadx.h中定义IDC_BTN_HELLO1宏#define IDC_BTN_HELLO1 1000运⾏后对话框显⽰的Button按钮结果如下:如果想让按钮有其他动作,⽐如当⿏标移动到按钮上时,按钮⽂本信息会变化。

实验八 MFC中的对话框及控件(二)

实验八 MFC中的对话框及控件(二)

实验八MFC中的对话框及控件(二)实验目的掌握常用的控件使用方法以及基于对话框的应用程序的开发实验内容1、编辑框的使用2、选择按钮的使用3、下拉列表的使用4、按钮的使用5、基于对话框的应用程序开发一、编辑框的使用[实验步骤]1、新建一个MFC单文档项目;2、在资源选项卡中插入一个自己的对话框3、新建一个对话框模板4、在对话框中添加2个静态文本控件和2个编辑框控件。

注意这2个编辑框控件的ID5、通过Classwizzard添加数据成员。

在Classwizzard弹出的对话框中选择新建你这个对话框的类,取名叫“Cmydlg”,当然你也可以取其他名字选择成员变量选项卡,然后双击某个编辑框的ID,设置对应数据成员名字及类型。

6、在你的工程的view类的头部通过包含对话框类的头文件#include “mydlg.h”包含你所建的对话框类。

注意:如果你改了对话框类的名字,看看相应的项目里新增的那个类的头文件名7、在View类中增加2个变量CString myname;int myage;8、通过Classwizzard增加一个鼠标左键消息响应函数,并在函数中增加如下代码:void CT estView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultCmydlg dlg;if(dlg.DoModal()==IDOK){myname=dlg.m_name;myage=dlg.m_age;Inavalidate();}CView::OnLButtonDown(nFlags, point);}9、在OnDraw函数里增加如下显示内容的代码CString str;str.Format("我的姓名是%s",myname);pDC->TextOut(10,10,str);str.Format("我的年龄是%d",myage);pDC->TextOut(10,30,str);10、编译运行程序,在工作视图区点鼠标左键二、选择按钮的使用[实验步骤]1、新建一个MFC单文档项目;2、在资源选项卡中插入一个自己的对话框3、新建一个对话框模板4、在对话框中添加3个单选框控件。

MFC对话框和常用控件_

MFC对话框和常用控件_

5.2控件的创建和使用方法
5.2.1控件的创建方法 控件的创建方式有以下两种: 一种是在对话框模板中用编辑器指定控件,也就是说,将控件的父窗口指 定为对话框,这样做的好处是明显的,因为当应用程序启动该对话框时, Windows系统就会为对话框创建控件;而当对话框消失时,控件也随之清 除。 另一种方式是将控件看作是任一窗口的子窗口,并通过调用相应的Create 函数来创建。 [例Ex_SDIHello] 在上例Ex_SDIHello的基础上用子窗口方式创建控件。 (1)打开CMyDlg的头文件MyDlg.h,添加一个按钮类CButton指针变量: class CMyDlg : public CDialog { // Construction public: CMyDlg(CWnd* pParent = NULL); // standard constructor CButton *m_btnWnd;//动态创建 … }
5.1对话框的使用
5.1.2使用对话框编辑器
打开对话框编辑器
将项目工作区窗口切换到ResourceView页面,双击Dialog目录下任意一 个对话框ID。或者,选择“Insert”“Resource”菜单命令(或按快捷键 Ctrl+R),选择Dialog项,单击New。
默认对话框 模板 默认对话框 资源ID号
标尺
控件工具栏
基准线
布局工具栏
图5.1 打开的对话框编辑器
5.1对话框的使用
在对话框中添加和编辑控件 (1)控件添加的方法



在对话框中添加一个控件的方法有下列几种: 在控件工具栏中单击某控件,鼠标箭头在对话框内变成“十”字形状;在对话框指 定位置单击鼠标左键,再拖动选择框可改变控件的大小和位置。 在控件工具栏中单击某控件,鼠标箭头对话框内变成“十”字形状;在指定位置处 单击鼠标左键不放,拖动鼠标至满意位置,释放鼠标键。 用鼠标左键点中控件工具栏中的某控件,并按住鼠标键不放;在移动鼠标到对话框 的指定位置的过程中,会看到一个虚线框,下面带有该控件的标记;释放鼠标键。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MFC对话框程序中的各组件常用方法:Static Text:将ID号改成唯一的一个,如:IDC_XX,然后进一次类向导点确定产生这个ID,之后更改Caption属性:GetDlgItem(IDC_XX)->SetWindowText(L"dsgdhfgdffd");设置字体:CFont *pFont = new CFont;pFont->CreatePointFont(120,_T("华文行楷"));GetDlgItem(IDC_XX)->SetFont(pFont);Edit Control:设置文本:SetDlgItemText(IDC_XX,L"iuewurebfdjf");获取所有输入:建立类向导创建一个成员变量(假设是shuru1,shuru2……)类型选value,变量类型任选。

UpdateData(true);GetDlgItem(IDC_XX)->SetWindowText(shuru1);第一句更新所有建立了变量的对话框组件,获取输入的值。

第二句将前面的IDC_XX的静态文本内容改为shuru1输入的内容。

若类型选用control:1.设置只读属性:shuru1.SetReadOnly(true);2.判断edit中光标状态并得到选中内容(richedit同样适用)int nStart, nEnd;CString strTemp;shuru1.GetSel(nStart, nEnd);if(nStart == nEnd){strTemp.Format(_T(" 光标在%d" ), nStart);AfxMessageBox(strTemp);}else{//得到edit选中的内容shuru1.GetWindowText(strTemp);strTemp = strTemp.Mid(nStart,nEnd-nStart);AfxMessageBox(strTemp);}其中nStart和nEnd分别表示光标的起始和终止位置,从0开始。

strTemp.Format 方法用于格式化字符串。

AfxMessageBox(strTemp)显示一个提示对话框,其内容是字符串strTemp。

strTemp = strTemp.Mid(nStart,nEnd-nStart)返回一个被截取的字符串,从nStart开始,长度为nEnd-nStart。

如果nStart == nEnd说明没有选择文本。

注:SetSel(0,-1)表示全选;SetSel(-1,i)表示删除所选。

3.在edit的末尾添加字段:CString str;shuru1.SetSel(-1, -1);shuru1.ReplaceSel(str);4.随输入自动滚动到最后一行(richedit同样适用)shuru1.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);注:作密码使用,设置密码掩码字符用SetPasswordChar('*')方法。

5.如何限制edit输入指定字符创建一个CEdit的子类,自动化,并创建子类的WM_CHAR类型的消息:void CyxEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags){// TODO: 在此添加消息处理程序代码和/或调用默认值if ( (nChar>= '0'&&nChar<= '9') ||(nChar>= 'a'&&nChar<= 'f') ||(nChar>= 'A'&&nChar<= 'F') ||nChar == VK_BACK ||nChar == VK_DELETE) //msdn的virtual key{CEdit::OnChar(nChar, nRepCnt, nFlags);}}如果在对话框程序中不能正常接收消息,则还需要重载虚函数PreTranslateMessage:BOOLCMFCApplication3Dlg::PreTranslateMessage(MSG* pMsg){// TODO: 在此添加专用代码和/或调用基类SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam);return CDialogEx::PreTranslateMessage(pMsg);//或return 0;}这样才能正常接收VM_CHAR消息。

6.如何使用richedit添加AfxInitRichEdit();CxxxApp::InitInstance(){AfxInitRichEdit2();.............}注意:如果不添加该方法,可能会造成对话框无法生成或启动,程序闪退等现象。

7.改变richedit指定区域的颜色及字体CHARFORMAT cf;ZeroMemory(&cf, sizeof(CHARFORMAT));cf.cbSize = sizeof(CHARFORMAT);cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;cf.dwEffects = 0;cf.yHeight = 12*12; //文字高度cf.crTextColor = RGB(200, 100, 255); //文字颜色*cf.szFaceName = *_T(" 隶书" ); //设置字体待定shuru2.SetSel(1, 5); //设置处理区域shuru2.SetSelectionCharFormat(cf);8.设置行间距(只适用于richedit2.0)PARAFORMAT2 pf2;pf2.cbSize = sizeof(PARAFORMAT2);pf2.dwMask = PFM_LINESPACING | PFM_SPACEAFTER;pf2.dyLineSpacing = 200;pf2.bLineSpacingRule = 4;shuru2.SetParaFormat(pf2);ComboBox Contorl:1.在编辑状态下点那个控件的向下的三角形,就出冒出来一个可以调高度的东东。

将高度调高,否则在执行时会不能显示下拉选项。

2.为combobox添加选项,在编辑状态下选combobox控件的属性,选Data标签,在编辑框中添加选项,选项间用;分割。

boBox.SetCurSel(0)用来设置下拉菜单初始值。

4.常用方法有:xuanze1.ResetContent();//清除所有内容xuanze1.AddString(L"fdfjkfdj");//添加一项内容xuanze1.GetCurSel();//获取选择的行数xuanze1.SetCurSel(1);//设置所选行xuanze1.GetWindowTextW(strTemp);//获取文本xuanze1.GetCount();//获取总行数xuanze1.DeleteString(1);//删除某行xuanze1.InsertString(1,L"dskjjfjfkds");//将行插入到指定位置Radio Button:1.使用多组:在对话框编辑界面按下Ctrl+D,将单选框按想要的顺序点击,然后把每一组的第一个单选框的Group属性设为true。

2.获取选择状态:每组的第一个单选框ID可以设置一个变量。

选择int型,然后给每个单选框都设置一个BN_CLICKED事件,在其中改变这组单选框的变量:void CMFCApplication3Dlg::OnClickedRadio1(){danxuan1=1;}void CMFCApplication3Dlg::OnBnClickedRadio2(){danxuan1=2;}void CMFCApplication3Dlg::OnBnClickedRadio3(){danxuan1=3;}3.快速获取选择的位置(特别是一组中有很多单选框的时候):danxuan2=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO3);该函数返回从单选框IDC_RADIO1到IDC_RADIO3中被选上的ID号,使用时须确保他们在一个组里。

注意这里返回的是ID号,即假如IDC_RADIO3所代表的那个单选框被选上了,那么返回的是数字(具体多少看宏定义),所以检查的时候也要判断是否和IDC_RADIO3相等。

Check Box:关联一个BOOL类型的变量……MFC Edit Browse:获取文件路径:GetDlgItemTextW(IDC_MFCEDITBROWSE1,strTemp);MFC Date Time Picker:1.设置时间控件变量shijian,然后创建一个CTime变量存储时间,并将其转换为字符串。

CTime time;shijian.GetTime(time);CString strTime;strTime=time.Format("%Y-%m-%d"); //获取到的为日期如:2010-03-05 strTime=time.Format("%H:%M:%S"); //获取到的为时间如:16:27:33 2.获取当前时间并将其转换为字符串:CDateTimeCtrl m_DateItmeCtrl_Time;m_DateItmeCtrl_Time.SetFormat(_T("yyyy-MM-dd HH:mm:ss"));CTime TimeTemp=TimeTemp.GetCurrentTime();m_DateItmeCtrl_Time.SetTime(&TimeTemp);CString strTime;COleDateTime dtTime;strTime =dtTime.Format(_T("%Y-%m-%d %H:%M:%S"));3.将CString转换为COleDateTime类型:CString strTime =_T("2009-08-11 11:22:33");COleVariant VariantTime;VariantTime = strTime;VariantTime.ChangeType(VT_DATE);COleDateTime DataTime = VariantTime;shijian.SetTime(DataTime);4.注意SetTime方法的参数须为指针。

相关文档
最新文档