Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 使用MFC创建GUI_User Interface_Mfc - Fatal编程技术网

User interface 使用MFC创建GUI

User interface 使用MFC创建GUI,user-interface,mfc,User Interface,Mfc,我最近开始学习MFC(散文书),感觉很难。但最困难的部分似乎是创建用户界面。似乎你必须知道你的控件应该放在什么位置(与基于对话框的应用程序不同) 你是怎么做到的?您是否先在Photoshop中绘制应用程序,然后在那里测量距离 还有,有没有GUI设计者?(减轻痛苦)。 我非常喜欢它,特别是因为它的速度和它不需要大框架的事实 任何人谁做MFC编程定期欢迎给我的建议,如何获得良好的编程MFC 很多时候,您使用对话框资源编辑器和数据绑定在MFC中创建UI(您可以使用基于对话框的视图)。如果你不创建一个对

我最近开始学习MFC(散文书),感觉很难。但最困难的部分似乎是创建用户界面。似乎你必须知道你的控件应该放在什么位置(与基于对话框的应用程序不同)

你是怎么做到的?您是否先在Photoshop中绘制应用程序,然后在那里测量距离

还有,有没有GUI设计者?(减轻痛苦)。 我非常喜欢它,特别是因为它的速度和它不需要大框架的事实


任何人谁做MFC编程定期欢迎给我的建议,如何获得良好的编程MFC

很多时候,您使用对话框资源编辑器和数据绑定在MFC中创建UI(您可以使用基于对话框的视图)。如果你不创建一个对话框,那么通常你有一些算法来控制控件的布局,并实现它。

MFC是一个痛苦的过程,IMO.,除非你需要用C++编程,我建议使用WPF或WiFrm使用C语言。这容易多了。如果你需要使用C++,那么有更好的GUI解决方案,比如QT.

< P>典型的MFC应用程序有一个顶级的框架窗口和一些子视图窗口和控制条。这些东西通常都不需要手动定位,尽管有时需要在构建过程中指定初始尺寸。可以使用Visual Studio的对话框编辑器来布局对话框。手动编写定位代码应该是非常罕见的。

我必须同意,对于MFC工作,作为Visual studio一部分的资源编辑器可能是使用MFC最简单的方法。您只需将控件放置在对话框上,并将其拉伸到适当的比例即可。作为记录,MFC是一个框架,只是它作为Windows的一部分捆绑在一起

如果希望控件调整大小,则需要添加一些代码来处理调整对话框大小时传递的调整大小(我认为是按大小)消息。只要你不想一次调整/重新定位太多的东西,这也不算太糟糕


就我个人而言,我建议避免使用MFC,而选择使用。有一些很棒的GUI布局程序,比如可以让创建可重写的对话框和属性页,这是很容易的。

你使用的是哪个C++版本?我使用的所有版本都附带了一个非常好的图形工具,用于放置和编辑GUI组件。我通常会添加所需的基本组件,并为它们编写一些代码,以查看它们的外观,然后在确定一个组件并添加其他组件之前,尝试不同的布局


尽管我断断续续地写MFC应用程序已经好几年了,而且非常喜欢它,但我还是同意海报上的说法,海报上有人问你为什么要费心学习。现在,你可能会更好地利用时间学习C#或Java。

MFC很简单,只要你不限制它应该做什么(基本的文档/视图、对话框、没有花哨的糖果UI;一旦您需要扩展基本行为,就变得越来越难了。

MFC应用程序可能会变得非常臃肿(例如,大的应用程序可执行文件大小、内存占用和/或需要与应用程序一起使用运行时DLL)。如果你专注于C++,我建议你去看看(以前是微软图书馆,现在是SooCoFig)。它是MFC的一个非常轻量级的替代品(使用模板),语法类似


<> P>最近我已经放弃了C++的大部分java应用程序,包括GUI,我不打算回去。

< P>如果你想在MFC应用程序中对话框的布局特性从cFrimeV>强>中导出cVIEW类。这看起来很像.NETWinForms、VB6等基于“表单”的GUI

这可以通过“新建应用程序向导”在“生成的类”的“基类”下拉部分下完成(我在VS2008上对此进行了检查)

您还可以创建一个基于对话框的应用程序——您似乎已经熟悉它了


还有其他几个CView派生类提供了设计应用程序“视图”的其他方法。使用默认CView作为基类(向导默认创建)假定您将手动创建“控件”和/或绘制屏幕。绘画(实际上是用GDI绘制显示器)是老式Win32开发人员熟悉的东西,但在更现代的框架中通常从未完成过。

我使用MFC已经超过10年了。这还不错,我建议您不要使用其他非Microsoft框架,只要您对在其他平台上运行应用程序不感兴趣。如果您希望应用程序看起来像一个对话框,那么使用CFormView,就像Aardvark建议的那样,并使用对话框编辑器进行布局。在我的很多MFC程序中,视图都是ClistView或类似于explorer的应用程序,左边是树,右边是ListView。我们经常使用的另一个工具是带有选项卡控件和属性页的通用CView。在这些情况下,您没有布局问题。只需创建控件并将其放置在距离边的某个预定义距离处。这篇散文很好。这就是我在MFC的原因。查看CodeProject.com了解一些扩展MFC的类,例如,调整对话框大小和属性表。
Brian在GUI中使用QT。我相信您会喜欢它的………

使用MFC,您不必添加任何其他框架,就可以获得出色的结果。
下面是我创建的一个实用程序的示例

+1来自我。这就是我用来破解MFC应用程序的方式。现在,我使用wxPython,它不需要任何时间就可以让一个工作程序运行并可用!MFC是臃肿的,Java不是:)?我无法忍受JavaGUI的外观和感觉。他们很可怕。我不知道有谁更喜欢JavaUI而不是本机UIs@TimJava支持许多外观,例如window native等。所以Java也是最好的,而且是真实的