问题标签 [mfc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5636 浏览

c++ - 以编程方式更改组合框

我需要combobox使用新值更新 a ,以便更改其中的反射文本。最干净的方法是在combobox初始化并带有消息之后。

所以我正在尝试为postmessage包含combobox.

所以如果我想向它发送一条消息,将当前选中的项目更改为第 n 个项目,postmessage会是什么样子?

我猜它会涉及ON_CBN_SELCHANGE,但我无法让它正常工作。

0 投票
5 回答
26828 浏览

c++ - 应用程序不能与 VS 2008 SP1 DLL 一起运行,以前的版本适用于 RTM 版本

自从我们从 Visual Studio 6 切换到 Visual Studio 2008 以来,我们一直在使用 MFC90.dll 和 msvc[pr]90.dll 以及私有并排配置中的清单文件,以免担心版本或将它们安装到系统中。

在 SP1 之前,它运行良好(在我们的开发人员机器上仍然运行良好)。既然我们已经在 SP1 后进行了一些测试,我从昨天早上开始就一直在拔头发。

首先,我们的 NSIS 安装程序脚本从 redist 文件夹中提取 dll 和清单文件。这些不再正确,因为该应用程序仍链接到 RTM 版本。

因此,我将定义添加_BIND_TO_CURRENT_VCLIBS_VERSION=1到我们所有的项目中,以便他们将使用 redist 文件夹中的 SP1 DLL(或在新服务包出现时使用后续的)。我花了几个小时才找到这个。

我已经从编译中仔细检查了中间文件文件夹中生成的清单文件,它们正确列出了 9.0.30729.1 SP1 版本。我已经两次和三次检查取决于一台干净的机器:它都链接到本地​​ dll,没有错误。

运行应用程序仍然会出现以下错误:

应用程序未能正确初始化 (0xc0150002)。单击确定以终止应用程序。

我在 google 或 microsoft 上进行的搜索都没有找到与我的具体问题相关的任何内容(但有回溯到 2005 年的此错误消息)。

有人对 SP1 有过类似的问题吗?

选项:

  • 找到问题并修复它,使其正常工作(首选)
  • 安装redist
  • 挖出旧的 RTM dll 和清单文件并删除 #define 以使用当前的。(我在较早的安装程序版本中得到了它们,因为 Microsoft 将它们从您的 redist 文件夹中删除!)

编辑:我尝试在关闭定义的情况下重新构建(链接到 RTM dll),只要 RTM dll 安装在文件夹中,它就可以工作。如果将 SP1 dll 放入,则会收到以下错误:

c:\Program Files\...\...\X.exe

此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。

没有其他人必须处理这个问题吗?

编辑:只是为了笑,我在我的测试机器上下载并运行了 VS2008SP1 的 vcredist_x86.exe。有效。使用 SP1 DLL。还有我的 RTM 链接应用程序。但不是在 SP1 之前工作的私有并行分发中。

0 投票
3 回答
3590 浏览

c++ - 如何在 Win32 应用程序中通过 C++/MFC 在鼠标光标处显示动态文本

我希望能够在 win32 应用程序中的鼠标光标位置显示一些动态文本,例如给出一个 X,Y 坐标,该坐标将随着光标移动,就好像附加了一样。我可以在 mousemove 事件期间使用鼠标坐标处的窗口的 TextOut() 调用来执行此操作,并使存储的最后一个光标位置周围的矩形无效以清除先前的输出。然而,这可能会受到闪烁的影响,并导致在窗口中绘制其他内容(例如跟踪框)时出现问题。有没有更好的方法来做到这一点,也许使用现有的光标绘制/无效机制?

0 投票
5 回答
8759 浏览

mfc - MFC Feature Pack 类菜单上的图标

在新的 MFC 功能(功能包)中,菜单出现在三个位置:

  • 在菜单栏中 (CMFCMenuBar)
  • 在弹出菜单中 (CMFCPopupMenu)
  • 在 CMFCButton 的“下拉菜单”版本中

我想将图标(高颜色和透明)放在所有菜单中。我找到了 CFrameWndEx::OnDrawMenuImage() ,我可以用它来自定义在菜单栏项目前面绘制图标。这不是很方便,必须在2008年实现图标绘制,但它可以工作。对于其他人,我还没有找到解决方案。是否有一种自动设置菜单图标的方法?

0 投票
3 回答
4451 浏览

user-interface - 从 Stingray 目标工具包迁移

我们有一系列使用Stingray Objective Toolkit销售的商业 MFC/C++ 应用程序,我们拥有源代码许可证,并在过去使用Bristol Technologies WindU(UNIX 上的 Windows API,包括 MFC)。

长话短说最近大约 18 个月前,我们将 Stingray 移植到 Win64,但这是一项长期乏味的任务,在此期间,我对诸如Ultimate ToolboxProf-UIS 之类的商业和开源替代 MFC 扩展库进行了一些研究。

  • 有没有其他人使用过 Stingray 并转向替代品?
  • 如果是这样,你会建议哪一个?
  • 此举的主要风险是什么?
0 投票
4 回答
6153 浏览

mfc - 您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用吗?

您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用来更改应用程序的外观吗?如果是这样,它是如何完成的?

这个想法是使用随 MSVC 2008 发布的 MFC 功能包来更改控件的形状、颜色等,例如按钮。

0 投票
5 回答
26076 浏览

winapi - 以编程方式选择 MFC 单选按钮

当我初始化一个对话框时,我想选择表单上的一个单选按钮。我没有看到使用类向导关联控件变量的方法,就像您通常使用 CButtons、CComboBoxes 等所做的那样......

此外,它甚至不存在 CRadioButton 类。

如何选择几个单选按钮之一?

0 投票
3 回答
804 浏览

c++ - 如何修复 MFC 绘画故障?

我正在尝试为我工作中正在开发的材料系统实现一些拖放功能。该系统的一部分包括一个“材料库”,它充当用户硬盘上保存的材料的存储库,分为几组。

作为一些 UI 润色的一部分,我希望实现一个“突出显示”类型的功能。拖放时,您可以合法地将材料拖放到其上的窗口将非常微妙地改变颜色,以改善对用户的反馈,即这是一个有效的操作。

我正在使用“基本材料”(只是带有 CStatic 的 CWnd)的栏从未突出显示时的中等灰色背景变为悬停时的蓝色背景。这一切都很好, OnDragEnter 和 OnDragExit 消息看起来很健壮,并设置了一个指示突出显示状态的标志。然后在 OnCtrlColor 我这样做:

但是,正如您在屏幕截图中看到的那样,被拖动对象下方的绘画“出现故障”,原始灰色留在原地。它看起来真的很丑,基本上破坏了整个效果。

有什么办法可以解决这个问题吗?

0 投票
7 回答
8257 浏览

user-interface - MFC应用程序的图表控件?

我想对我们可以在 Visual C++ MFC 应用程序中使用哪些第三方控件提出一些建议?

0 投票
1 回答
589 浏览

mfc - VFW(Windows 视频)API 是否支持 Alpha 通道透明度?

VFW(Windows 视频)API 是否支持 Alpha 通道透明度?我希望能够导出带有 Alpha 通道信息的视频。如何在 VC6 中做到这一点?