C++6.0 MFC界面做ug二次开发
使用C++6.0 MFC界面做ug二次开发例子:
一、新建一个空的mfc程序
启动vc-》文件-》新建-》MFC AppWizard(DLL)-》输入工程名 MFC_MEI,工程路径“D:\”
-》确定-》选择第一项:动态链接库和MFC静态链接-》完成-》确定
二、设置工程环境
2.1设置 调试 路径和库文件路径(指向UGOPEN目录)
工程 --> 设置 -->调试-->工作目录: D:\Program Files (x86)\NX4.0\UGOPEN
2.2工程 --> 设置 --> C/C++ --> 预处理器--> 附加包含路径:
D:\Program Files (x86)\NX4.0\UGOPEN
2.3工程 --> 设置 --> C/C++ --> 分类: Code Generation;Use run-time library:
Mutlilthreaded;-->确定
2.4将两文件:
UG安装目录\UGOPEN\libufun.lib
UG安装目录\UGOPEN\libugopenint.lib
复制到 C++安装目录\VC98\Lib
工程 --> 设置 --> 链接 --> 对象/库模块 增加UG的二个库文件:
libufun.lib libugopenint.lib-->确定
三、设计MFC对话框。
插入-》资源-》Dialog-》确定
查看-》建立类向导->选择Create a new class-》ok-》
在Name输入MFC_MEIDlg,在File Name输入MFC_MEIDlg.cpp-》ok
为对话框添加对话框控件事件
查看-》建立类向导->弹出MFC ClassWizard对话框 选择Message Maps
在Object IDs:选择 IDOK 在Message:选择BN_CLICKED 单机 Add Function按钮,
弹出 Add Member Function对话框;接受默认的消息函数名 OnOK 单机ok按钮结束
四、新建用户文件
工程-》增加到工程-》文件-》新建C/C++ Header File文件OnBegin.h 和
新建C++ Source File文件OnBegin.cpp到工程
并将这两个文件作为用户工程主文件。
选择【FileNew】选项卡,查看当前工程的逻辑视图结构。
五、在OnBegin.h 和 在OnBegin.cpp文件中添加代码
OnBegin.h 文件中添加以下代码
//函数声明
extern void PrintErrorMessage( int errorCode );
在OnBegin.cpp 文件中文件中添加以下代码
#include "StdAfx.h"
#include "Resource.h"
#include "OnBegin.h" //--------注意修改
#include "MFC_MEIDlg.h"
#include <uf.h>
#include <uf_ui.h>
MFC_MEIDlg *dlg = NULL; //这里的MFC_MEIDlg和 mfc里的Dlg对应
//User Exit
extern "C" DllExport void ufusr( char *parm, int *returnCode, int rlen )
{
//返回的正确的模块状态,得到正确的句柄
AFX_MANAGE_STATE(AfxGetStaticModuleState());
//UF初始化
int errorCode = UF_initialize();
if (UF_PART_ask_display_part() == NULL_TAG)
{
uc1601("梅雷提示!请打开一个部件文件", 1);
}
else
{
dlg = new MFC_MEIDlg; //--------注意修改
dlg->Create(IDD_DIALOG1 );
dlg->ShowWindow( TRUE );
}
//UF终止化
UF_terminate();
//输出错误信息
PrintErrorMessage( errorCode );
}
//设置UF程序从内存卸载的方式
extern int ufusr_ask_unload( void )
{
//return (UF_UNLOAD_UG_TERMINATE); //设置UF程序内存 是在ug关闭后卸载-貌似使用mfc在UG高版本用这个会有问题
return (UF_UNLOAD_SEL_DIALOG); //mfc推荐使用//设置UF程序内存 是在ug里-》文件-》实用工具-》卸载共享图像 里卸载
//return (UF_UNLOAD_IMMEDIATELY); //不使用mfc推荐使用//设置UF程序运行以后立刻从内存中卸除-貌似使用mfc用这个会有问题
}
extern void ufusr_cleanup (void)
{
//释放申请的内存
if (dlg)
{
delete dlg;
}
return;
}
//输出错误信息
extern void PrintErrorMessage( int errorCode )
{
if ( 0 != errorCode )
{
char message[256];
UF_get_fail_message( errorCode, message );
UF_UI_set_status( message );
}
}
六、编译连接生成dll在ug里测试程序
==============================================
各个文件说明:
MFC_MEI.h 是应用程序的主头文件。
MFC_MEI.cpp 是包含应用程序类CHoleApp的实现代码的源文件。
MFC_MEI.def 用于声明动态连接库的参数,如DLL的名称和描述等
MFC_MEI.rc 所有程序使用的资源列表
OnBegin.h 用户的首个使用文件,放置了User Exit函数代码。
OnBegin.cpp
StdAfx.h 用来构建一个预编译的头文件*.pch和一个预编译的类型文件StdAfx.obj。
StdAfx.cpp 用户创建的所有CPP文件在最伤端必须包含语句 #include "StdAfx.h"
Resource.h 用于定义新的资源标识符
有关mfc界面设计
==============================
插入-》资源-》Dialog-》确定
在mfc对话框 添加3个静态文本控件 和 3个编辑框控件。
查看-》建立类向导->选择Create a new class-》ok-》
在Name输入MFC_MEIDlg,在File Name输入MFC_MEIDlg.cpp-》ok
为控件添加关键变量
查看-》建立类向导->弹出MFC ClassWizard对话框 选择Message Variables
选择 IDC_EDIT1 点 Add Variable.. 修改变量名 m_IDC_EDIT1 修改类型 double
选择 IDC_EDIT2 点 Add Variable.. 修改变量名 m_IDC_EDIT2 修改类型 double
选择 IDC_EDIT3 点 Add Variable.. 修改变量名 m_IDC_EDIT3 修改类型 double
为对话框添加对话框控件事件
查看-》建立类向导->弹出MFC ClassWizard对话框 选择Message Maps
在Object IDs:选择 IDOK 在Message:选择BN_CLICKED 单机 Add Function按钮,
弹出 Add Member Function对话框;接受默认的消息函数名 OnOK 单机ok按钮结束
===========================================
我们已经知道 为控件添加关键变量 和 如何 为对话框添加对话框控件事件
那么下面就是 MFC控件的使用
MFC控件的使用 我在这里只介绍 IDC_EDIT控件的取值和获值
--------------------------------------------------
//设置IDC_EDIT控件属性(数字)
SetDlgItemInt(IDC_EDIT1,1);
//获得IDC_EDIT控件属性(数字)
int num1;
num1=GetDlgItemInt(IDC_EDIT1);
//设置IDC_EDIT控件属性(字符串)
char ch1[10]="字符串";
GetDlgItem(IDC_EDIT1)->SetWindowText(ch1);
//获得IDC_EDIT控件属性(字符串)
char ch1[10]="";
GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);
--------------------------------------------------
假设有3个edit控件,做加法运算。过程如下:
UpdateData();//刷新数据
int num1,num2,num3;
num1=GetDlgItemInt(IDC_EDIT1);
num2=GetDlgItemInt(IDC_EDIT2);
num3=num1+num2;
SetDlgItemInt(IDC_EDIT3,num3);
UpdateData(FALSE);
--------------------------------------------------
知道 mfc 变量 和 事件 操作 会ufun函数
如果 mfc控件不会用 可以去百度。,不需要重头开始学。分分钟就可以投入使用
UG二次开发用的模板文件
需积分: 49 77 浏览量
2016-12-20
08:22:33
上传
评论 2
收藏 2.49MB 7Z 举报
addadd820914
- 粉丝: 0
- 资源: 2
最新资源
- 基于Vue+Echarts实现风力发电机中传感器的数据展示监控可视化系统+源代码+文档说明(高分课程设计)
- 基于单片机的风力发电机转速控制源码
- 基于C++实现的风力发电气动平衡监测系统+源代码+测量数据(高分课程设计)
- 毕业设计- 基于STM32F103C8T6 单片机,物联网技术的太阳能发电装置+源代码+文档说明+架构图+界面截图
- 基于 LSTM(长短期记忆)(即改进的循环神经网络)预测风力发电厂中风力涡轮机产生的功率+源代码+文档说明
- 基于stm32f103+空心杯电机+oled按键+运动算法
- 《CKA/CKAD应试指南/从docker到kubernetes 完全攻略》学习笔记 第1章docker基础(1.1-1.4)
- 基于python实现的水下压缩空气储能互补系统建模仿真与经济效益分析+源代码+论文
- 华中科技大学-自然语言处理实验,Bi-LSTM+CRF的中文分词框架,并且利用基于深度学习的方法进行中文命名实体识别++源码报告
- 基于动态罚函数的铁路车流分配与径路优化模型python源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈