草庐IT

c++ - 用MFC写的Windows程序是C++程序?

我读过的每本C++书籍都是这样说的:-所有C++程序都有一个main()函数。main()函数是所有C++程序的起点。所有C++程序都从main()函数开始执行。但是,我发现使用MFC编写的Windows程序没有任何main()函数。它使用WinMain()函数作为程序起点。那我能说用MFC写的Windows程序不是C++程序吗?那么,它是一个什么样的程序呢?谢谢。 最佳答案 这个问题的答案比是或否要复杂一些。这在很大程度上取决于您对“C++程序”的定义有多严格。使用MSVC构建的Windows子系统程序通常不会有main函数。MF

windows - Win32/MFC 应用程序开发选项

我仍在使用VisualC++2003来维护和增强基于PC的程序。它是用C和C++编写的,只在PC上运行——而不是在网络、手机、云或其他任何地方——我不知道这个.NET框架是什么,可能不需要这个时候要注意。无论如何,现在我已经将我的开发PC升级到Windows7,运行旧的开发环境变得越来越不方便。我认为最新的完整版VisualStudio2010仍可用于构建我的项目,但成本实在令人不快。至少在2003年,他们以大约100美元的价格单独提供VisualC++,但免费赠品VisualC++.NET2010对我一点好处都没有。那么现在有没有VisualStudioPro的替代品?如果我能找到替

c++ - mfc - 带有富文本的消息框

我希望能够在消息框中显示格式化文本(如粗体文本、项目符号、斜体等)。我遇到了thiswonderfularticle但似乎无法让它发挥作用。我在同一个链接上使用演示应用程序。有人可以帮帮我吗?我曾尝试调试/理解该代码,但没有成功。约束:(不是我的选择)必须与WindowsXP兼容。我正在使用VisualC++6。应该如何显示:实际显示方式: 最佳答案 使用RichEdit2控件简单地创建一个对话框...在InitInstance中,添加以下调用://InitRichEditLibraryAfxInitRichEdit2();在您的对

windows - Visual C++ MFC 中窗口启动时的事件顺序

假设我有一个派生自CWnd的类,它具有事件处理函数OnPaint、OnCreate和OnSize。如您所知,所有这些都是在窗口启动时发生的,但我想看看它们之间的顺序是什么。当我在其中一个设置断点时,在结束函数后,控件不会传递给另一个,而是转到MFC的内置.cpp文件之一,例如wincore.cpp?我怎样才能理解订单?任何链接或教我一种方法来防止控件转到MFC内置类? 最佳答案 消息到达的顺序没有完全定义和记录。但是,某些消息是相对于其他消息排序的。MSDN明确指出WM_NCCREATE在WM_CREATE之前发送.就顺序而言,WM

c++ - LoadFrame (MFC) 仅在澳大利亚失败

我们的团队有一个困扰我们的错误。以下代码返回false:CMainFrame*pMainFrame=newCMainFrame;if(!pMainFrame->LoadFrame(IDR_MAINFRAME)){AfxMessageBox(GetStr(IDS_MAINFRM_FAIL_TO_LOAD));ASSERT(FALSE);returnFALSE;}我们正在使用VS2010进行编译,并且确实安装了RogueWaveStingray组件。CMainFrame是一个CBCGPMDIFrameWnd,它基于CMDIFrameWnd,由BCGSoft制作。.我们的软件在全局大约100

c++ - 模拟 MFC C++

我想在Windows中模拟其他用户。例如:我创建了一个仅对用户A和管理员具有权限的目录,当使用用户B登录并运行.exe时,我想模拟用户A以获得在该特定目录中编辑/删除/插入的权限。我找到了这个:http://msdn.microsoft.com/en-us/library/aa374731(VS.85).aspx 最佳答案 首先,请查看这篇关于Windows用户模拟的文章:http://www.codeproject.com/KB/system/UserImpersonation.aspx它应该给你一个起点。如果您需要更多控制权,则

c++ - MFC面板和窗口句柄

我可以在MFC应用程序中使用类似面板的东西吗?这是为了覆盖MFC(对话框应用程序)中的默认窗口。然后将面板涂成黑色并在其顶部涂上一些随机的东西。类似于视口(viewport)的东西。有没有比这更好的选择来达到同样的效果? 最佳答案 当然。那叫window!创建一个派生自CWnd并覆盖OnPaint()的类。在对话框的OnInitInstance()中,实例化一个CMyWnd对象并调用它的Create()成员。当然,请确保CMyWnd对象的生命周期与对话框的对象生命周期窗口相同。iow,让它成为你的CMyDialog类的成员。不是很复

windows - MFC 本地化不适用于 Windows 7 的 MUI 安装

好的,所以我们正在编写MFC应用程序以利用built-inlocalizationsupportwithsatelliteDLL's自MFC7以来。一切似乎都运行良好,除了我的Windows7企业版安装了MUI支持并使用瑞典语UI而不是英语UI仍然在我们的应用程序中显示英语UI。该应用程序使用瑞典语作为其默认语言,具有AppNameENU.dll形式的英语本地化DLL,因此MFC实际上是有意在这种情况下切换到英语,就好像它不关心启用MUI的Windows操作系统中的用户选择,以及Windows安装的默认发布语言?从MSDN页面(上面的链接)中,我读到它是因为MFC实际上应该考虑这些设置

c++ - C++ MFC 程序是完全原生的吗?

我希望创建一个不需要任何环境依赖性(如JavaJRE或.NET)的Windows程序。我需要该程序开箱即用并在95到7之间的任何版本的Windows上工作。是否可以使用C++和MFC创建它?谢谢, 最佳答案 是的,它是“本地”的,但这并不意味着您没有依赖项(我认为这就是您要问的)。如果您动态链接到MFC,您将依赖于MFC,您必须redistribute您可以静态链接到MFC库,在这种情况下,所有需要的目标代码都包含在您的可执行文件中。但是linkingstaticallyisnotrecommended(一个原因是出于安全考虑-除非

c++ - 如何在禁用的 MFC CEdit 控件中显示插入符号?

如果编辑控件被禁用,插入符号就会消失。在这种情况下,如果编辑显示的是长文本,则无法看到其余的单词。使用插入符号i,我们可以做到这一点。 最佳答案 我认为您必须使用启用的只读编辑控件而不是禁用的。在编辑框属性窗口中勾选'readonly'或者调用Create时使用ES_READONLY。另外,不要忘记检查AutoHScroll(ES_AUTOHSCROLL)(如果是多行,则检查AutoVScroll)。CEdit*pEdit=newCEdit;pEdit->Create(ES_MULTILINE|WS_CHILD|WS_VISIBLE