【问题标题】:Create a new window in another program在另一个程序中创建一个新窗口
【发布时间】:2013-10-27 01:53:09
【问题描述】:

我正在为一个程序制作一个 .dll 插件,该插件将从正在运行的程序中获取一些信息。现在我必须做一点图形部分:一个窗口(程序窗口和弹出窗口的样式相同),带有几个具有特定功能的按钮,我在其中显示一个列表,其中包含我从程序计算的一些信息。

我正在使用 MFC,所以我认为我应该使用 CRect、CBrush、CPen 等类,但这似乎需要大量的学习曲线。 我整天都在寻找一个好的解决方案,但我迷路了。您认为使子窗口与该窗口所在的程序相似的最佳解决方案是什么?

谢谢

【问题讨论】:

  • 在另一个程序中创建一个新窗口 除非您想将代码注入远程进程,否则您可以简单地创建一个具有跨进程父级的窗口。这不像注入代码那么令人担忧,但仍然令人担忧。
  • 跨进程父进程-> 你如何推荐这样做?当你说“fraught”时,你指的是困难吗?
  • 找到另一个进程的窗口,然后将自己创建为它的子进程。
  • 好的。你推荐我使用哪个类?而且,你知道任何好的网站,以便这个特定主题的菜鸟能够开始吗?谢谢朋友的帮助

标签: visual-c++ visual-studio-2012 dll


【解决方案1】:

在可视对话框编辑器中创建您的窗口,并从工具栏上放置按钮等。然后使用“添加类”为您的窗口创建一个从 CDialog 派生的类。出于学习目的,创建一个“基于对话框”的 MFC 程序来学习如何使对话框工作。

【讨论】:

  • 所以添加资源文件,制作我想要的窗口,然后创建一个派生类,对吗?我仍然不确定我将如何为窗口获得相同的主题......但非常适合答案。我将研究“基于对话框的”MFC
  • 嘿斯科特。我一直在按照您的建议进行操作,但我意识到我创建的窗口将在程序之外,它将是一个没有父程序样式的 Windows 窗口。我说的对吗?
  • 我建议您创建一个基于对话框的程序来了解 MFC 对话框。现在您可以在 DLL 项目中执行相同的操作,这样您的对话框将位于父程序“内部”。是否继承父程序的样式取决于该样式是如何实现的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 2022-01-20
相关资源
最近更新 更多