VC6 MFC Dialog as apllication 编程

这篇具有很好参考价值的文章主要介绍了VC6 MFC Dialog as apllication 编程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MFC框架虽然古老,但编程还是方便多了,在操控界面控件的基础上,平时在Console模式习练的类可以融入到MFC中,开发应用程序还是比较方便的。下图是习练程序的界面。

VC6 MFC Dialog as apllication 编程,mfc,c++,MFC习练

说明:

一个EDIT框,一个Label框; 当点击 Execute钮时显示 Hello World!

一个ProgressBAR,程序把它放了一个固定位置。

一个ComboBox,一个ListBox,当Execute时加入Hello World n

二个水平滚动条,点击或改变时在下部的EDIT框中显示POS数值

一个SPIN,点击时在其下面显示改变的数值

几个CheckBox和Radio button,Execute时放在固定位置。

一个EDIT用于显示对DLL的调用。

步骤一:File -> New 一个MFC新程序

VC6 MFC Dialog as apllication 编程,mfc,c++,MFC习练

选择 Dialog based 应用程序模板,其它页面用默认值。

VC6 MFC Dialog as apllication 编程,mfc,c++,MFC习练

步骤二:在Dialog页面上摆控件

VC6 MFC Dialog as apllication 编程,mfc,c++,MFC习练

步骤三:Dialog或控件上右键,进入ClassWizard

VC6 MFC Dialog as apllication 编程,mfc,c++,MFC习练

进入后是 message map页

VC6 MFC Dialog as apllication 编程,mfc,c++,MFC习练

它旁边是member页

VC6 MFC Dialog as apllication 编程,mfc,c++,MFC习练

左侧的ID,在右侧有Control类的成员名 m_Edit1Ctrl,也可设数据变量名m_Edit1Val。在WIN32SDK编程时通过ID得到控件的handle,然后操作控件。现在则通过 m_Edit1Ctrl 成员名,操作它映身的左侧的那个ID的控件,具体找某个ID控件的事情交给MFC去做。在程序代码中是下面的样子:

void CMyMFC1Dlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyMFC1Dlg)
	DDX_Control(pDX, IDC_EDIT7, m_Edit7Ctrl);
	DDX_Control(pDX, IDC_EDIT4, m_Edit4);
	DDX_Control(pDX, IDC_SPIN2, m_Spin2);
	DDX_Control(pDX, IDC_EDIT3, m_Edit3);
	DDX_Control(pDX, IDC_SCROLLBAR1, m_Scroll1);
	DDX_Control(pDX, IDC_LIST1, m_List1);
	DDX_Control(pDX, IDC_COMBO1, m_Combo1);
	DDX_Control(pDX, IDC_PROGRESS1, m_Pbar1);
	DDX_Control(pDX, IDC_EDIT1, m_Edit1);
	DDX_Control(pDX, IDC_STATIC1, m_Label1);
	DDX_Text(pDX, IDC_EDIT2, m_Edit2val);
	DDX_Text(pDX, IDC_EDIT3, m_Edit3val);
	DDX_Text(pDX, IDC_EDIT4, m_Edit4val);
	DDX_Text(pDX, IDC_EDIT7, m_Edit7Val);
	//}}AFX_DATA_MAP
}

在上面代码的下方是消息映射代码

BEGIN_MESSAGE_MAP(CMyMFC1Dlg, CDialog)
	//{{AFX_MSG_MAP(CMyMFC1Dlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_WM_HSCROLL()
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

工具箱中的控件基本上都映射好的,但ScrollBAR没有,要自己做映射、写代码,不明白微软为什么要把它单独空出来啥都不做。

在消息映射下面的OnInitDialog中把EDIT4设为SPIN的密友,让密友控件显示Spin的变化。然后创建二个滚动条的指针,并设定它们可变化的范围。Edit2和Edit3初始显示 0 值。

	m_Spin2.SetBuddy(GetDlgItem(IDC_EDIT4));
	m_Spin2.SetRange(0,255);  

	// TODO: Add extra initialization here
	//pScrollBar 为指向滚动条控件的指针
	CScrollBar* pScrollBar=(CScrollBar*)GetDlgItem(IDC_SCROLLBAR1);
	CScrollBar* pScrollBar2=(CScrollBar*)GetDlgItem(IDC_SCROLLBAR2);
	//设置滚动条的滚动范围和当前位置
	pScrollBar->SetScrollRange(0,100);
	pScrollBar->SetScrollPos(0);
	pScrollBar2->SetScrollRange(0,100);
	pScrollBar2->SetScrollPos(0);
	//将文本编辑框的值初始化为0
    SetDlgItemInt(IDC_EDIT2,0,TRUE);
	SetDlgItemInt(IDC_EDIT3,0,TRUE);

当点按Execute按钮Button1时,在OnButton1()中执行如下代码。如果将每个控件看成一个Class,那这个Class的右边即是它的方法,比如AddString, SetWindowText等。

void CMyMFC1Dlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	m_Edit1.SetWindowText(_T("Hello World!"));
	m_Label1.SetWindowText(_T("Hello World!"));
	m_Pbar1.SetRange(0, 100); m_Pbar1.SetPos(25);
	m_Combo1.AddString("Hello world 1");
	m_Combo1.AddString("Hello world 2");
	m_Combo1.AddString("Hello world 3");
	m_Combo1.AddString("Hello world 4");
	m_Combo1.AddString("Hello world 5");
	m_Combo1.SelectString(1, "Hello world 5");
	m_List1.AddString("Hello World 1");
	m_List1.AddString("Hello World 2");
	m_List1.AddString("Hello World 3");
	m_List1.AddString("Hello World 4");
	m_List1.AddString("Hello World 5");
	m_Scroll1.SetScrollRange(1,100,true);
	m_Scroll1.SetScrollPos(50, true);
	CheckDlgButton(IDC_CHECK1, 1);
	CheckDlgButton(IDC_CHECK2, 1);
	CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO2);
}

对滚动条的处理是在CSDN网友代码基础上修改的,他直接将代码写在了程序里,没有单独创建新类。还有对SPIN的代码处理,那些代码是工作的,但如果给Spin SetBuddy密友控件直接就可显示的。

接下来的代码是对 MFC DLL 的调用

void CMyMFC1Dlg::OnButton2() 
{
	// TODO: Add your control notification handler code here
	char mystring[25];
	itoa(fnMFC_dll(), mystring, 10);
	//m_Edit6.SetWindowText(mystring);
	m_Edit7Ctrl.SetWindowText(mystring);
}

在调用前,先包含它的H文件,再LINK时把它的LIB文件包括进去。

VC6 MFC Dialog as apllication 编程,mfc,c++,MFC习练

MFC暂时习练到此。那个DLL的编写,基本上MFC编写DLL生成的,生成后加了个返回42如下。

MFC_DLL_API int fnMFC_dll(void)
{
    return 42;
}

如果要计算,括号中的void可以是int等传送的变量,计算后再return。还可以增加新方法,实现真实有用的功能。MFC有些图表界面库挺不错的,如果开发图表类软件,可用界面库简化操作。感谢CSDN朋友们的代码示范!文章来源地址https://www.toymoban.com/news/detail-727099.html

到了这里,关于VC6 MFC Dialog as apllication 编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于MFC的图书馆图书管理系统 VC++操作Excel文档的方法,读取,查询,写入,修改,删除

    VS2017加装MFC以及创建第一个MFC程序_赵满刚的博客-CSDN博客 MFC读取Excel文件+数据处理+写入Excel_土豪gold的博客-CSDN博客 VS2013 MFC连接Access数据库(ADO)详细版实例操作(含Combo Box读取数据库内容,附源码)_土豪gold的博客-CSDN博客_mfc连接access数据库 MFC 导入EXCEL到数据库_weixin_338

    2024年02月06日
    浏览(48)
  • 基于MFC的图书馆图书管理系统 VC++操作Excel文档的方法,读取,查询,写入,修改,删除

    VS2017加装MFC以及创建第一个MFC程序_赵满刚的博客-CSDN博客 MFC读取Excel文件+数据处理+写入Excel_土豪gold的博客-CSDN博客 VS2013 MFC连接Access数据库(ADO)详细版实例操作(含Combo Box读取数据库内容,附源码)_土豪gold的博客-CSDN博客_mfc连接access数据库 MFC 导入EXCEL到数据库_weixin_338

    2024年02月06日
    浏览(50)
  • 红队专题-从零开始VC++C/S远程控制软件RAT-MFC-远控介绍及界面编写

    一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 主程序 可执行程序 服务端生成器 主机上线 服务端程序 和 服务 文件管理 CMD 进程 服务自启动 编写前 功能了解分析 界面 运行模式 主程序 主对话框 操作菜单 列表框 配置信息 多线程操作 非模式对话框 操作系

    2024年02月06日
    浏览(53)
  • 《MFC编程》:MFC的概念和作用

    MFC(Microsoft Foundation Classes),是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。 所以在MFC中,你可以直

    2024年02月02日
    浏览(34)
  • VC6.0下载和安装教程

    Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)是Microsoft公司推出的以C++语言为基础的开发Windows环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点。     Microsoft Vis

    2023年04月09日
    浏览(28)
  • C++图形界面编程-MFC

    C++控制台程序是命令行黑框,如果要写一个图形界面,VS也提供了图形界面编程MFC。建项目的时候选如下选项: 类似于QT。 问:那么MFC项目的运行入口main()或WinMain()在哪里呢? 答:其实,在MFC应用程序中,MFC维护着一个WinMain()函数,只是它被隐藏了。通过你写的MFC代码,你已

    2024年02月12日
    浏览(42)
  • MFC多线程编程示例1

    新建一个对话框工程; 添加2个编辑框,2个按钮; 对话框头文件添加, 对话框构造函数中添加,flag = true; OnInitDialog()中添加, 线程函数和按钮单击代码;

    2024年01月18日
    浏览(39)
  • VC6.0的工程设置解读Project--Settings

    做开发差不多一年多了,突然感觉对VC的工程设置都不是很清楚,天天要和VC见面,虽然通常情况下一般都不会修改工程设置,但是还是有必要对它的一些设置项的来龙去脉有一定的了解,所以狂查资料,稍作整理,总结一篇文档,方便以后查阅,总得记录点什么,温故而知新

    2024年02月06日
    浏览(40)
  • MFC网络编程简单例程

     网址:学名叫URL(Uniform Resource Locator),统一资源定位符。URL的各种形式如下图所示。  尽管URL有各种不同的写法,但他们有一个共同点,就是URL开头的文字,即“http:”“ftp:”“file:”\\\"mailto:\\\"这部分文字标识浏览器应当使用的访问方法。比如当访问Web服务器时应当使用

    2024年02月11日
    浏览(37)
  • 如何在win10系统上安装使用vc6.0

    vc6.0非常好用,但在win10上使用,需要解决如下几个问题。 1:安装:在最后显示安装程序正在更新您的系统,然后就无响应。。 解决办法:安装到custom这一个环节,选择Data Acess,然后选择右边的change option,进入里面,取消ADO开头的这一项。或者直接不选择Data Acess。 2:调试

    2024年02月02日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包