基于MFC的实时数据动态显示界面设计_聂斐
- 格式:pdf
- 大小:1.16 MB
- 文档页数:3
MFC读写.txt⽂件时进度条显⽰实时进度 整体实现⽅式:先获得⽂件长度,然后⽤每次读取的长度,计算出完成的百分⽐,⽤百分⽐的值设置进度条。
⼀、MFC进度条 Progress Control 相关函数1. create() ——创建Progress Control 针对不是通过资源⽂件上拖拉进度条控件⽣成的进度条,需要⽤此函数创建⼀个。
2. SetRange() —— 设置进度条范围 设置进度条的起始值和终⽌值。
(不管拖拽还是创建都要设置此,在初始化中)3. SetPos() —— 设置当前值 设置进度条的当前位置(值)。
4. OffSetPos() —— 偏移⼀段位置 移动进度条⼀段距离(动态移动,如果不做延时,默认速度移动)5. SetStep() —— 设置步长 设置进度条偏移⼀次的长度,⼀般与StepIt搭配使⽤6. StepIt() —— 更新步长位置 按照步长来更新位置。
7.GetPos() —— 得到当前值 获得进度条当前值。
⼆、⽰例 1. ⾸先在初始化函数中设置范围和当前初始值CProgressCtrl* pProg = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS);pProg->SetRange(0, 100);pProg->SetPos(0); 2. 获取⽬标txt⽂件的总⾏数while(!feof(fOpenFile)) {if(fgets(szBuf, sizeof(szBuf) - 1, fOpenFile)) {nRowOfTotalNum++;}}nRowOfTotalNum++;fseek(fOpenFile, 0, SEEK_SET); 这⾥,读取完总⾏数后,要将⽂件指针指向⽂件头。
3. 获取当前读取进度的⾏数,计算出完成的百分⽐,⽤百分⽐的值设置进度条。
fRowOfCurrentNum = nRowOfCurrentNum;fRowOfTotalNum = nRowOfTotalNum;fProPos = (fRowOfCurrentNum / fRowOfTotalNum) * 100.00;nProPos = fProPos;cProFileCtl.SetPos(nProPos); PS:SetPos()只能接受int型变量,⽽计算后的进度⼜要使⽤Float类型进⾏保存计算,所以这⾥要特别注意各个变量之间计算时的类型转换问题,否则会⼀直出现Pos为0⽽进度条始终没有反应的情况。
基于MFC的图形界面程序设计与用户交互研究一、引言在当今信息技术高速发展的时代,图形界面程序设计已经成为软件开发中不可或缺的一部分。
MFC(Microsoft Foundation Class)作为Windows平台下的一种应用程序框架,为开发人员提供了丰富的工具和库,使得图形界面程序设计变得更加高效和便捷。
本文将探讨基于MFC的图形界面程序设计以及用户交互的研究。
二、MFC简介MFC是由微软公司开发的一套C++类库,旨在简化Windows应用程序的开发过程。
通过MFC,开发人员可以利用预先定义好的类和函数来创建各种窗口、对话框、控件等,从而实现丰富多彩的图形界面。
MFC提供了一种基于消息传递机制的事件处理方式,开发人员可以通过重载相应的消息处理函数来响应用户操作。
三、图形界面程序设计1. 界面布局在MFC中,界面布局通常通过资源编辑器来实现。
开发人员可以在资源编辑器中添加控件、设置属性、调整位置和大小等操作,从而设计出符合需求的界面布局。
通过拖拽和调整控件,可以轻松实现各种复杂的界面效果。
2. 控件设计MFC提供了丰富多样的控件供开发人员使用,如按钮、文本框、列表框、组合框等。
开发人员可以根据实际需求选择合适的控件,并设置相应的属性和事件处理函数。
通过控件之间的组合和嵌套,可以构建出直观友好的用户界面。
3. 图形绘制除了基本控件外,MFC还支持图形绘制功能,开发人员可以通过GDI(Graphics Device Interface)绘制各种图形元素,如直线、矩形、椭圆等。
利用GDI提供的API函数,可以实现自定义绘图效果,为用户呈现更加生动和具有吸引力的界面。
四、用户交互研究1. 事件处理在图形界面程序中,用户交互是至关重要的一环。
MFC通过消息映射表和消息处理函数来实现事件处理机制,当用户进行操作时,系统会发送相应的消息给程序,并由消息处理函数进行响应。
开发人员可以根据不同消息类型编写相应的处理逻辑,实现与用户的有效交互。
做一个MFC程序的时候碰到一个需求。
就是需要根据定制情况,动态生成菜单,菜单的具体结构和信息是之前不知道的(因此不能利用工具构造),点击不同类型的菜单会触发特定的一类事件(需要动态绑定事件)。
这种需求实际是蛮不BT的,很多场合下都可能会有,用C#写了个Demo花了不到半个小时。
但转到MFC下来写,就费尽周折。
其实这个问题代表了在MFC中动态创建资源绑定事件的一般性问题,所以总结一下。
动态创建菜单需要先了解CMenu类。
通常我们利用工具绘制一个菜单,每一个菜单项下都可以视为有一个CMenu类。
它们联系在一起,形成树状。
典型的一个菜单对应过来是如下图这个样子:如上,CMenu可以分成三种,一个是Popup(黄色),一个是Separator(灰色),一个是Item(红色)。
前两种都是没有ID信息的,Popup有一个指针,指向其SubMenu;Item保存各种信息有ID可以响应事件;Separator,恩,基本是一穷二白的。
CMenu的CreateMenu方法可以创建一个菜单资源,用DeleteMenu(包含所有子菜单)或DestoryMenu可以销毁菜单资源,用AppendMenu可以添加一个菜单。
了解这些内容,就可以开工了,现实现上图所示的MainSubMenu1下菜单的动态创建,代码如下:// 假设在ChildFrm中,调用该方法获得当前的主菜单指针CMenu* mainMenu = AfxGetMainWnd()->GetMenu();CMenu* subMenu = NULL;// 遍历主菜单下的各级菜单寻找名为MainSubMenu1的菜单intmenuCount = mainMenu->GetMenuItemCount();for(inti = 0; i<menuCount; i++){CStringmenuName;if(mainMenu->GetMenuStringA(i, menuName, MF_BYPOSITION) &&menuName == "&MainSubMenu1"){drawingMenu = mainMenu->GetSubMenu(i);break;}}// 移除原有的菜单项int subMenu1Count = subMenu->GetMenuItemCount();for(inti = subMenu1Count - 1; i>= 0; i--){subMenu->DeleteMenu(i, MF_BYPOSITION);}// 动态添加Item菜单项for(inti = 0; i< 2; i++){CString message = "";subMenu->AppendMenuA(MF_STRING, ID_BEGIN + i,message.Format("SubSubMenu%i", i);}// 添加分隔符subMenu->AppendMenuA(MF_SEPARATOR);// 添加弹出式子菜单CMenu * popupMenu = new CMenu();popupMenu->CreateMenu();for(inti = 0; i< 2; i++){CString message = "";popupMenu->AppendMenuA(MF_STRING, ID_BEGIN + 2 + i, message.Format("PopupSubMenu%i", i));}subMenu->AppendMenuA(MF_POPUP, (UINT_PTR)popupMenu->operator HMENU(), "PopupMenu");有几个需要注意的地方,一个是主菜单的指针获得,可以参考《MFC框架各部分指针获取方式》一文。
mfc界面设计教程MFC(Microsoft Foundation Classes)是一套用于开发Windows平台上图形用户界面(GUI)的C++类库。
MFC界面设计是开发Windows应用程序中不可或缺的一部分。
本文将向您介绍一些MFC界面设计的基本原则和技巧,帮助您创建出具有吸引力和用户友好的应用程序界面。
首先,设计一个清晰的用户界面是至关重要的。
您需要确保您的应用程序界面布局简洁明了,易于导航。
使用适当的菜单和工具栏来组织您的功能,使用户能够方便地找到和使用这些功能。
避免界面过于拥挤或混乱,这会给用户带来困惑和不满。
其次,选择合适的颜色和字体可以提升您应用程序界面的外观。
一般来说,最好选择与您应用程序主题相关的颜色,并确保文字清晰可读。
避免使用太多花哨的字体或颜色,这可能会让用户感到眼花缭乱。
另外,为您的界面添加一些可视化元素也是一个不错的选择。
例如,您可以使用图标来表示不同的功能或操作,这有助于用户更快地识别和理解这些内容。
您还可以考虑使用一些动画效果或过渡效果来吸引用户的注意力,但要确保这些效果不会分散用户的注意力或降低应用程序的性能。
此外,考虑到用户的反馈是很重要的。
您可以通过使用弹出窗口、对话框或状态栏来向用户显示相关的提示信息,告知他们当前的操作状态或发生的错误。
提供适当的错误处理机制也非常重要,以便用户能够轻松地解决问题或进行必要的更正。
最后,测试是一个不可忽视的环节。
在设计和开发过程中,您应该经常测试您的界面,以确保它在不同屏幕分辨率和操作系统上都能够正常显示和工作。
同时,您还应该进行用户体验测试,以了解用户对您设计的界面的感受和反馈,并根据需要进行相应的修改和改进。
总结起来,MFC界面设计需要注意清晰布局、合适的颜色和字体、可视化元素、合理的反馈机制以及充分的测试。
通过遵循这些原则和技巧,您可以创建出用户友好和吸引人的应用程序界面。
希望本文对您的MFC界面设计有所帮助!。
基于MFC与OpenGL的可视化机械仿真设计系统程飞【摘要】The general visual mechanical design system is more demandingof hardware and the motion simulation generally does not respond to quantitative data input. In light of this, this paper researches on a mechanical design system that is not much demanding of hardware and can respond in real time to quantitative data input in motion simulations. The system is based on the Microsoft foundation Class Library (MFC) and the open Graphics Library (OpenGL) and computer software development. Development examples show: compared to large CAD software programs, the system is of a faster drawing function, and it is capable of calculating and visualizing component data under different conditions of precision. It can achieve rapid design and development of mechanical parts. The paper also gives an example of visualized system development of disc cam mechanisms.%通用可视化机械设计系统对硬件要求高,其仿真运动模拟一般不响应定量数据输入。
实验一 MFC程序的界面设计一、实验目的和要求1、熟悉Visual C++编程环境。
2、掌握常用客户区鼠标消息的用法。
二、实验内容编程实现下图1.1所示界面,要求:在客户区点击鼠标左键、右键时弹出消息框显示当前鼠标坐标。
在客户区按下字符键时弹出消息框显示当前按下的字符。
利用应用程序向导建立基于单文档/视图结构的应用程序,查看框架程序中各类的结构。
图1.1 实验二程序运行界面三、实验步骤1. 新建工程新建一个工程,工程名称为Mouse,工程类型为MFC AppWizard(exe),应用程序类型为单文档/视图结构,最终会得到一个框架程序。
2. 定义鼠标消息处理函数选择“查看”菜单下的“建立类向导”菜单项,调出如图1.2所示的类向导界面。
图1.2 ClassWizard界面由于对客户区鼠标消息的处理封装在视图类中,所以在图1.2所示的界面中,Class name选择CMouseView,Object IDs选择CMouseView,Messages选择WM_LBUTTONDOWN,然后单击Add Function按钮,添加消息WM_LBUTTONDOWN的处理函数,最后单击Edit Code按钮,进入该函数的代码编辑区,,如图1.3所示。
图1.3 鼠标消息处理函数代码编辑界面在如图1.3所示的鼠标消息处理函数中添加下列代码,捕捉鼠标当前坐标。
void CMouseView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultMessageBox("you have pressed the left button",”Mouse”,MB_YESNOCANCEL|MB_ICONWARNING);CView::OnLButtonDown(nFlags, point);}在图1.2所示的界面中,用同样的方法添加消息WM_RBUTTONDOWN的处理函数,在该函数中添加下列代码。
mfc项目开发实例85个全文共四篇示例,供读者参考第一篇示例:MFC(Microsoft Foundation Classes)是一种面向Windows操作系统开发的图形用户界面应用程序框架,它是微软公司推出的一种软件开发工具,为开发人员提供了一系列类和函数,用于快速、简便地创建Windows应用程序。
在本文中,我们将介绍一些MFC项目开发的实例,希望对MFC开发者有所启发和帮助。
一、MFC项目开发实例之文件操作1. 创建一个MFC项目,实现文件的读取和写入功能。
可以通过CFile类来实现文件的打开、读取、写入和关闭操作。
2. 创建一个MFC项目,实现文件夹的遍历和文件的拷贝功能。
可以使用CFileFind类来查找文件和文件夹,使用CopyFile函数来实现文件的拷贝。
6. 创建一个MFC项目,实现数据库连接和查询功能。
可以使用CDatabase类和CRecordset类来连接数据库和执行SQL查询。
11. 创建一个MFC项目,实现多文档视图窗口的创建和切换功能。
可以通过CMDIChildWnd类和CDocument类来创建多文档视图窗口。
12. 创建一个MFC项目,实现对话框的创建和控件的添加功能。
可以通过CDialog类和CWnd类来创建对话框,使用CButton类、CEdit类和CListCtrl类等控件来添加在对话框中。
13. 创建一个MFC项目,实现菜单和工具栏的添加和事件处理功能。
可以通过CMenu类和CToolBar类来添加菜单和工具栏,使用消息映射来处理菜单和工具栏事件。
14. 创建一个MFC项目,实现状态栏和进度条的显示和更新功能。
可以通过CStatusBar类和CProgressCtrl类来创建状态栏和进度条,使用SetPaneText和SetPos函数来更新状态栏和进度条。
15. 创建一个MFC项目,实现动画和图像显示功能。
可以使用CImageList类和CAnimateCtrl类来实现动画和图像的显示。
MFC框架窗口界面设计MFC(Microsoft Foundation Classes)是一个用于开发Microsoft Windows应用程序的C++类库。
MFC提供了一整套用于创建Windows应用程序的类和函数,其中包括窗口界面设计。
本文将探讨MFC框架窗口界面设计的一些关键方面。
首先,MFC框架中的窗口界面设计基于窗口类。
每个窗口类都有一个相应的类对象,用于管理窗口的创建、显示、隐藏以及事件处理等。
设计MFC窗口界面时,首先需要确定窗口的布局和功能。
通常,应该继承自CWnd类,CWnd类是MFC框架中窗口类的基类。
其次,MFC框架提供了丰富的控件类,可以用于设计窗口界面的各种元素,例如按钮、文本框、列表框、菜单、工具栏等等。
开发者可以根据实际需求选择并配置适当的控件类,并根据需要调整控件的位置和大小,以实现所需的窗口界面。
MFC框架还提供了对话框类CDialog,用于设计对话框窗口。
对话框是一种特殊的窗口,通常用于显示和接收用户输入的信息。
开发者可以使用对话框模板设计器来设计对话框的布局,并通过类成员变量和控件关联实现对对话框中各个控件的操作。
在MFC框架中,窗口界面设计通常采用消息映射的方式。
通过在窗口类中添加消息映射函数,可以实现对窗口消息的处理。
开发者可以根据需要添加相应的消息映射函数,处理窗口消息并执行相应的操作。
例如,当用户点击按钮时,可以响应WM_COMMAND消息,并执行与该按钮相关的操作。
此外,MFC框架还提供了一些辅助类和函数,用于简化窗口界面设计的过程。
例如,CDialogEx类是对话框类的一个扩展类,提供了一些额外的功能,如主题支持和阻止空格键输入等。
另外,MFC框架还提供了一些用于绘制窗口界面的绘图类和函数,例如CDC类和绘图函数。
总的来说,MFC框架提供了丰富而强大的工具和类库,用于设计和开发Windows应用程序的窗口界面。
通过合理选择和配置窗口类、控件类和对话框类,并使用消息映射和辅助类,开发者可以很容易地实现自定义的、具有丰富功能的窗口界面。