草庐IT

c++ - CRichEditCtrl 在使用 MFC 编写的共享 dll 中无法正常工作?

我正在编写一个用MFC编写的DLL以供其他应用程序使用。项目设置:1.在静态库中使用MFC2.预处理器:AFXDLL3.MD构建在调用之前,我还使用了AFX_MANAGE_STATE(AfxGetStaticModuleState())内部调用InitInstance和DLLmain的CWinApp。此对话框中有选项卡,我只能看到第一个选项卡,所有其他选项卡都显示为空白。当我运行与exe相同的DLL(需要更改)时,它工作正常。当我调用AfxGetApp()时DLL也会崩溃吗?我想主要问题是由于DOMODAL()。谁能说出选项卡控件不起作用的问题是什么?更新我发现CRichEditCtr

c++ - 禁用/启用 MFC 功能包的功能区按钮

我正在使用MFC功能包,我在功能区栏上有一些按钮,CMFCRibbonButton的实例。问题是我想在特定条件下启用和禁用其中一些,但在运行时。我怎样才能做到这一点?因为没有具体的方法...我听说一个解决方案是在运行时附加/分离事件处理程序,但我不知道如何... 最佳答案 当您创建CMFCRibbonButton对象时,您必须指定关联的命令ID(请参阅CMFCRibbonButton构造函数的文档here)。然后使用MFC中的常用命令更新机制启用和禁用功能区按钮,使用CCmdUI类。例如,如果您有一个命令ID为ID_MYCOMMAN

c++ - 隐藏 MFC 对话框

好的,所以我使用这段代码来隐藏基于对话框的MFC应用程序(VC++)的任务栏图标。每当我单击十字或关闭按钮时,任务栏图标和对话框都会隐藏。但是我不能把这一件事做对。每当我点击标题栏中的关闭或十字按钮时,对话框首先闪烁并显示一种中间对话框,然后隐藏。这很烦人。经过两天的徒劳,我在这里发布我的代码。所以请大家帮帮我。提前致谢。voidCMyAppDlg::OnBnClickedCancel(){//TODO:AddyourcontrolnotificationhandlercodehereCWnd*pWnd;pWnd=AfxGetMainWnd();RemoveTaskbarIcon(pW

c++ - 如何将 MFC CFormView 放置在 CDockablePane 中?

如何将MFCCFormView放置在VS2008MFC功能包中引入的CDockablePane中? 最佳答案 检查BCGSoft使用cview执行此操作的示例。类名略有不同,但大致相同,因为它们向Microsoft提供了CDockablePane。 关于c++-如何将MFCCFormView放置在CDockablePane中?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/276

c++ - MFC IE 嵌入式网络浏览器古怪

我有一个嵌入了InternetExplorerWeb浏览器控件的无模式MFC对话框。该控件直接从CWnd派生,带有VisualStudio生成的ActiveX包装器,我仅使用DDX_Control(pDX,IDC_EXPLORER)将其映射到CDialog,m_explorer);.我有两个问题。问题#1:由于是无模式的,我使用new/Create()然后DestroyWindow()/delete(在PostNcDestroy中)随意启动和停止对话框。当IE控件开始加载Flash视频(常规YouTube内容)时,问题就开始了:当一个关闭时,对话框因此被破坏,视频仍然加载!直到完全缓存

c++ - 在仅适用于 Windows 的大型 MFC 应用程序中使用 Qt 会加快开发速度吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我知道有很多关于Qt与MFC的问题,但我会尝试非常具体。我们有一个针对小众行业的大型(经过10年的开发)C++MFC应用程序。它应该永远只支持Windows和英语。但是我们需要添加一堆新的设计师绘制的GUI和GUI控件(对话框、按钮、自定义列表……)。我们可以聘请1或2个新的GUI开发人员来构建这些新界面,因此我们有能力选择与MFC不同的技术。Qt似乎最有

c++ - 链接到 MFC 项目的没有 mfc 的 C++ 静态库是否抛出 bad_alloc 或 CMemoryException*?

我正在为MFC应用程序开发一个大型、老化的代码库。随着时间的推移,该代码已被许多开发人员处理,因此,我们在整个代码中采用三种不同的方式来处理new分配失败的可能性。第一种方法是在new的结果上测试NULL。我们不使用nothrownew.obj,所以这显然是一个需要清除的错误。第二个是捕获CMemoryException*(是的,编译器中启用了C++异常)。据我了解,MFC覆盖了标准的operatornew,而是抛出了这个东西。我相当确定这第二种方法在MFC应用程序本身中是正确的。MFC使用其奇怪的CMemoryException抛出版本覆盖新的。最后一个来self们的基础人员,他们精

c++ - 如何禁用 MFC 将工作区设置写入注册表?

默认情况下,VisualStudio2010中的基本MFCC++项目会将其所有工作区设置存储在用户可配置的键名下的HKCU注册表配置单元中。这包括上一个窗口大小/位置、功能区设置、状态栏等。如何才能完全禁用此功能以便完全不写入注册表?我尝试不设置SetRegistryKey(),这让我在第一次读/写注册表时从框架中得到调试断言。SetRegistryKey((LPCTSTR)NULL)给出了相同的结果。SetRegistryBase()好像没有效果。CWinApp/CWinAppEx中的其他方法似乎都没有帮助。 最佳答案 编辑:我原

c++ - 使用 winapi 或 mfc 从 .NET 应用程序列表控件中获取项目名称

所以基本上我有这个软件可以以列表形式输出数据。感谢这里的评论,我们了解到它很可能是用.NET编写的。我想扫描列表,这样我就可以对数据做一些算法。使用Spy++我发现保存此列表的内容名为“Panel2”,我可以使用EnumChildWindows获取此列表的句柄(其类为“WindowsForms10.Window.8.app”)。但是我不知道如何访问列表本身以便阅读它的项目。我已经尝试在“Panel2”句柄上使用EnumChildWindows并输出所有这些窗口的标题,但它们都是空的。panel2可以是实际列表吗?如果可以,我可以将它转换为(CListCtrl*)吗?Axilles在评论

c++ - MFC 应用程序到 Unicode/MBCS 的分段转换

我有一个大型MFC应用程序,我正在扩展它以允许多语言输入。目前我需要允许用户在单个对话框的编辑框中输入Unicode数据。有没有办法在不为整个应用程序打开UNICODE或MBCS的情况下执行此操作?我现在只需要转换应用程序的一小部分。是否可以分段执行此操作?如果可以,如何执行?说明:我可以使用::GetWindowTextW()从窗口中获取Unicode信息。我想弄清楚如何让用户在窗口中输入Unicode文本。目前,用户在windows-1252代码页之外输入的字符显示为“?”。有办法解决这个问题吗? 最佳答案 要允许CEdit显示