Windows程序设计:MFC 、Winform 和 WPF 比较

C# Winform开发教程 1.创建新的Winform工程 打开VS新建窗体应用就可以了,起个名字,设置路径 创建完毕后,会有一个Program.cs的脚本文件,这里的Main为入口函数。 2.窗体编辑 单击顶条区域,右侧弹出对应的属性栏。接下来只介绍几个常用的设置,其他各位可以自行去了解。 窗口样式 -> Icon:设置工具的icon。 窗口样式 -> MainMenuStrip:关联右键菜单(右键菜单的使用后面详解)。 设计 -> Name:本工具的脚本名(Program) ... 阅读详情
AI摘要

本文对比了MFC、WinForm和WPF三种Windows应用开发技术,在开发效率、成本、执行效率、灵活性、美观性和内存使用上的差异。MFC虽执行效率高但开发成本大;WinForm易于开发但运行速度慢;WPF则在各方面取得平衡,有望成为未来主流。

MFC生成本机代码,自然是很快,可是消息循环减缓了界面显示速度。

WinForm封装了win32的api,多次进行P/invoke操作(大部分使用p/invoke操作封装),速度慢。

WPF是一种新的模型,不再使用win32模型,自己新建模型,使用dx作为新的显示技术,直接访问驱动程序,加快了运行速度,可是,这种模型,需要支持dx9的显卡,硬件要求高(你还能找到现代机器不支持dx9的吗?)

开发效率上,MFC < WPF < WinForm

尽管MFC开发界面执行效率高但是开发效率低,作为现在的项目开发来说时间跟开发效率往往能决定项目的成败,所以除非有特别的需求,否则都回尽量避免用MFC来做开发,MFC只是一个弱封装器。

开发成本,MFC > WPF > WinForm

用MFC开发成本太高,对开发者能力要求更高,作为客服当然希望开发的费用越少越好,开发者当然希望钱赚得越多越好,这样一比,这也是MFC没落的一个很大的原因。

界面执行效率上,MFC == WPF > WinForm

随着计算机硬件的性能提高,多核cpu的普及,它们的差距会越来越小。

开发灵活性上:WPF > MFC > WinForm

美观上:WPF > WinForm > MFC

这一项中MFC下要开发出一个华丽的ui极其困难,也许你可以说你可以用控件,但是商业开发控件是要收费的!!MFC要写出这种效果不知要写到何年何月。这样一来MFC存在的价值就更低了。效率和美观不如WPF,开发效率又不如WinForm。

内存使用上:WPF > WinForm > MFC

随着计算机硬件的性能提高WPF这个缺点会被忽略。

使用范围:WPF > MFC == WinForm

有以上可知:WPF大有取代WinForm和MFC之势,从未来net的发展来看,MFC以后只会变成一种经典,作为一种技术来供开发者学习,WinForm和WPF两者会并存发展,但最终都会被WPF取代,最终实现桌面应用程序和浏览器应用程序的统一。

上位机开发 常用的平台及语言 一、有哪些上位机开发平台(优缺点和使用场景) 由于上位机概念的广泛性,所以上位机开发平台可以是任何开发平台。这里介绍几个常用的经典的上位机开发平台及其特性。 VB(Visual Basic) 开发语言:Basic(BASIC是一种直译式的编程语言,在完成编写后不须经由编译及连接等步骤即可执行,类似脚本语言) 开发工具:Visual Basic(语言简单易用,对面向对象编程和多线程编程支持不完整) 适用平台:WINDOWS ALL 平台特点:以面向对象的思想开发可视化图形界面的应用程序。采用面向对象程序设计方 阅读详情

相关推荐

WinForm(一) WinForm入门与基本控件使用

2.窗口设计与控件布局 3.窗口事件 (1)界面设计(2)逻辑代码 二.WinForm布局开发 3.逻辑事件代码Form.cs 四.图片框与项目资源 1.添加资源

m0_67394006的博客 1万+

C#理论 —— Windows 窗体应用WinForm

文章目录1. WinForm - Windows窗体应用程序1.1 WinForm工程创建1.2 工具箱1.3 窗体属性1.3.1 实例:创建一个新窗体1.4 窗体事件1.4.1 实例:通过窗体的不同事件改变窗体的背景颜色1.5 窗体方法1.5.1 实例:窗体方法使用1.6 消息框MessageBox1.6.1 实例:Message的应用1.7 控件 1. WinForm - Windows窗体应用程序 WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户

- 2万+

winform含控件使用指南

1、窗体文件2、看运动控制卡官方文档这里的dll就不是添加引用,不过挺多的就是添加引用 这样去使用他的他的调用形式是,首先引入.cs 然后将.cs的命名空间名字直接改成项目用的那个,然后就直接用了。.dll是被我们所引用的.cs文件所调用的复制过来的按钮会把事件也给复制过来 我们给他重置一下,这样他就会拥有一个属于他的点击函数了。.Designer.cs:设计文档。..................

chengcao123的博客 2149

winform

事件:现实中要做的或者已发生事情。用户和windows与控件交互的“桥梁”,用来响应用户的各种操作 (点击事件,用户输入文本框等)1. 事件的3要素 事件的目标 事件属性 事件执行程序事件的目标 :交互的控件对象事件属性:事件目标和用户交互的不同状态事件执行程序:事件目标和用户时执行的结果2、事件绑定方式1.控件绑定法:找到对应控件事件属性 填入对应事件执行程序名称 在事件执行程序中完成对应逻辑2.自定义事件方法和绑定事件方法(用于代码法创建控件时使用)

slender_orange的博客 4180

手把手教你新建一个winform项目(史上最全)

本文介绍如何利用visual studio新建一个winform程序

qq_34059233的博客 4万+

STM32F4系列HAL库配置定时器实验——输入捕获

STM32F4系列HAL库配置定时器实验——输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器

azs0504的博客 9286

1.3-原来这才是大家常用的上位机开发平台

一、有哪些上位机开发平台(优缺点和使用场景) 由于上位机概念的广泛性,所以上位机开发平台可以是任何开发平台。这里介绍几个常用的经典的上位机开发平台及其特性。 VB(Visual Basic) 开发语言:Basic(BASIC是一种直译式的编程语言,在完成编写后不须经由编译及连接等步骤即可执行,类似脚本语言) 开发工具:Visual Basic(语言简单易用,对面向对象编程和多线程编程支持不完整...

Robert Zhang 4万+

Unity 2021 LTS安装避坑指南:从下载到第一个3D项目的完整流程

本文提供了一份详尽的Unity 2021 LTS安装与首个3D项目创建指南。内容涵盖从Unity Hub下载、版本选择、模块安装避坑,到编辑器界面解析、创建旋转立方体脚本的完整流程,旨在帮助初学者快速搭建稳定开发环境并上手核心操作。

mango的博客 310

C# Winform程序设计运行在高分屏下模糊解决办法

2018-06-23 14:40:43   前段时间在开发一个坐标转换程序,开发环境是Windows10 64位专业版(V1803)和Visual Stuido 2015社区版,电脑屏幕是15.6英寸分辨率1920*1080,采用的是WinForm程序设计方法开发。在程序运行时遇到了这样一个问题,在Visual Studio设计的很清晰的菜单和界面,运行的时候菜单和控件上字体变得很模糊,界面大小...

weixin_38353800的博客 1733

CarSim转向控制对比指南:开环扭矩控制vs转角控制(附Simulink连接示例)

本文深入对比了CarSim中车轮转角控制与开环扭矩控制的核心原理与适用场景。开环扭矩控制能激活完整的转向系统动力学,更适用于EPS控制策略开发与驾驶员在环仿真等对真实性要求高的场景。文章提供了详细的Simulink接口配置步骤与连接示例,为车辆动力学仿真工程师提供了清晰的决策与实操指南。

weixin_29199873的博客 478

STM32G070xx将Flash页分块方式存储,固定数据块存储,实现一次擦除多次写入

本例程使用STM32G070xx芯片,Flash大小128KB,Flash每页(2048字节)写满后再擦除。操作存储区分为64块,每块32字节,即写满64次擦除一次;标定存储区分为16块,每块128字节,即写满16次擦除一次,每个存储区的块都有各自的头部标记

RaphaelCeo的博客 1545

闲聊桌面应用开发[Win16->Win32->ATL/WTL/MFC->WinForm->WPF/Silverlight/WinRT]

    闲来无聊,正好小组人员讨论到桌面的开发,那把笔者接触的WIndows平台下的几个主要的发展过程聊一聊。 主要从概述,参考资料,图书等几个方面说起。 所有的界面开发都会涉及如下的几个方面的内容: v 控件 [Contrrols Widget]及验证 v 绑定:数据绑定到控件和控件的内容反馈回数据 v 布局系统: v 模式和支撑:和服务的通讯,MVC MVP MVVM等...

weixin_34024034的博客 137

Unity游戏Google Play闪退?可能是这个隐藏设置惹的祸(附完整解决方案)

本文深度解析Unity游戏在Google Play上出现闪退的疑难问题,指出其根源可能在于Google Play后台的“应用完整性”设置与游戏原生库的冲突。文章提供了从崩溃日志分析、本地与线上版本对比测试,到调整Unity构建设置、审查第三方插件以及优化分发包配置的系统性排查与根治方案,帮助开发者彻底解决这一隐蔽问题。

weixin_29213827的博客 235

windows 文件对话框

https://docs.microsoft.com/zh-cn/previous-versions/windows/desktop/legacy/bb776913(v=vs.85)

Betterc5的博客 347

时空智友企业流程化管控系统文件上传漏洞

时空智友企业流程化管控系统是一个功能丰富、灵活可定制的企业管理工具。通过该系统,企业能够实现流程的自动化、协同的提升、数据的洞察和决策的优化,从而提高工作效率、管理水平和企业竞争力。时空智友企业流程化管控系统 formservice接口处存在任意文件上传漏洞,未经认证的攻击者可通过此接口上传后门文件,最终可导致服务器失陷。

holyxp的博客 1032

OpenCASCADE:Direct3D CSharp 示例

OpenCASCADE:Direct3D CSharp 示例OpenCASCADE:Direct3D CSharp 示例 OpenCASCADE:Direct3D CSharp 示例 此示例演示了如何在使用CSharp和Windows Presentation Foundation (WPF)编写的.Net应用程序中使用 OCCT 和 DirectX 库。 .Net、OCCT (C++) 和 DirectX 级别之间的连接由用 C++/CLI 编写的代理库OCCProxy和D3DProxy提供。代理库OCC

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1827

winform入门

(3)本质:每次拖拽添加一个布局控件,就会在窗口相应的Designer.cs设计布局代码文件中的InitializeComponent()方法中自动生成布局代码(比如Location、Size等),来实现布局。(1)操作:在设计界面拖拽控件,可以完成界面布局(控件大小、名称、类型、样式等) (2)原理:设计界面自动关联Form1.Designer.cs文件,在InitializeComponent()方法中会自动生成相关代码。界面设计就是简单的放置了一个PictureBox控件,没有过多的设计。

2301_76674526的博客 2334

柔性电极材料新突破:清华团队实现0.1mV级脑信号采集精度

清华团队的 0.1mV 级柔性电极突破,不仅是材料科学与神经工程的跨界胜利,更标志着脑机接口从 “信号采集” 向 “神经交互” 的范式转变。当电极与脑组织实现 “柔性共生”,人类首次拥有了窥探大脑微观电活动的 “精密探头”,这既是神经疾病诊疗的里程碑,更是人机融合时代的新起点。随着技术标准化与产业生态的完善,这场始于实验室的 “柔性革命”,正加速向临床病房、智能工厂、消费电子等场景渗透,为脑机接口的大规模应用铺设 “柔性跑道”。:当柔性电极实现 “神经信号的无损捕捉”,如何平衡技术创新与伦理边界?

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2946

WinForm,可能是Windows上手最快的图形框架了

WinForm是一门非常经济实惠的技术,就是说,可以在短时间内学会,并迅速借此进行项目开发。尽管在很多方面不够现代,做出来的东西又Low又丑,但绝大多数的应用场景也不需要高端大气上档次。或许正是因为这种特点,`WinForm`在工控领域用得非常多,毕竟可以迅速实现某个小功能。

微小冷的学习笔记 7684

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Winform的控件学习整理篇

当下拉框中的选择项非常多的时候,用户需要在大量的选项中找出自己需要的选项就有些不方便,所以可以通过此属性来实现一种功能:用户在下拉框中手工输入一个关键字,然后查询出所有符合要求的选项,显示到这个下拉框中,实现一种筛选的功能。此控件可以看作是两个Panel组合而成的一个控件或者是一个Panel被分成两部分的控件,共有两个区域,在程序运行时,依旧可以调整中间的分割线来调整左右两部分的大小,并且可以进行嵌套以便区分为更多的部分,还可以横向分割。文本框中可以输入汉字,字母,字符,数字等所有字符。

i78i845的博客 7606

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

winform开发

winform简介 winform是.Net开发平台中对Windows Form的简称,基于.Net Framework平台 的客户端开发技术,一般使用c#编程。 Windows风格的控件,以及时间,直接使用,开发快速 Windows form:Windows窗体 Windows应用程序:客户端应用程序,显示信息,输入、网络与远程计算机进行通信。 事件驱动程序–点击窗体上的控件——触发事件——相应的操作 控件:输入的位置、单击的位置、选择的位置、显示的位置 winform创建应用程序 新建项目 windo

lhjueuue的博客 5464

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Winform基础入门(一)

l       概念和基础 l       常用的控件及其作用 l       向文本框添加时间和控件ComboBox l       MessageBox类和窗体的一些属性事件 l       Tab键聚焦设定 l       ASCII码表中需要记忆的部分 l       为更好的用户体验而设计(范例) 1.概念和基础:    Winform :Windows

命运 1万+

C#---winform基础

一、winform 1、winform应用程序是一种智能客户端技术,我们可以使用winform应用程序帮助我们获得信息或者传输信息等。 2、属性 Name:在后台要获得前台的控件对象,需要使用Name属性。 visible:指示—个控件是否可见 nabled:指示一个控件是否可用。 3、事件:发生一件事情- 注册事件:双击控件注册的都是控件默认被选中的那个事件。 触发事件: 4、 在Main函数当中创建的窗体对象,我们称之为这个窗体应用程序的主窗体.也就意味着,当你将主窗体关闭后,整个应用..

weixin_47328424的博客 4234
上一篇: 自动发送QQ消息功能的原理及实现
下一篇: Windows程序设计之创建窗口示例
ctrigger
博客等级 码龄16年 1766粉丝 1575原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值