WPF 控件中的本机 Win32 窗口

2024-01-25

我正在开发一个需要主机本机 Win32 窗口的应用程序,但不知何故我不知道如何做到这一点。

我需要创建一个可以在其上显示本机 Win32 控件的 WPF 对话框窗口。该对话框窗口上也将具有 WPF 控件,因此我正在寻找某种可以获取 HWND 并将其发送到非托管 C++ 控件的网格,以便它可以在其上进行绘制。 那可能吗 ?

我不需要知道该表面内发生了什么,只需要让 C++ dll 在其上绘图,我所需要做的就是传递具有适当大小的 HWND(我知道)。

我对 WPF 有点陌生(曾经做过 win32 编程)并且很迷茫(但我现在如何将它连接到 C# .NET 等)

如果您能给我任何提示,那就太好了:)


您可以按照此处的说明/步骤开始:在 WPF 中托管 Win32 内容 http://msdn.microsoft.com/en-us/library/aa970061.aspx

从文章介绍来看:

Windows 演示框架 (HwndHost) 内部 Win32 演练

要在 WPF 应用程序中重用 Win32 内容,请使用 HwndHost,它是 使 HWND 看起来像 WPF 内容的控件。像 HwndSource 一样, HwndHost 使用起来很简单:从 HwndHost 派生并实现 BuildWindowCore 和 DestroyWindowCore 方法,然后实例化您的 HwndHost 派生类并将其放置在您的 WPF 应用程序中。

如果您的 Win32 逻辑已经封装为控件,那么您的 BuildWindowCore 实现只不过是调用 创建窗口。

然后,如果您有具体问题,请在此处提问,人们会在具体问题上为您提供帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 控件中的本机 Win32 窗口 的相关文章

随机推荐

  • 如何将可变数量的参数传递给 sprintf() 函数?

    在我的网页中 如果用户选择表单中的某些选项 例如 1 A Chosen 2 B Chosen 3 C Not Chosen 然后 我的脚本中的 sprintf 函数应该接受该数量的参数 sprintf s s valueOf A value
  • 从 python32 进行 Python 打印

    我无法让 Python 打印 word 文档 我想做的是打开Word文档 打印它然后关闭它 我可以打开Word和Word文档 import win32com client msword win32com client Dispatch Wo
  • 如何使用 Applescript 更改首选项窗格滑块值?

    我正在尝试创建一个 AppleScript 来设置输入音量 of the Input类别下的Sound菜单中系统偏好设置 如何改变 Slider 的值 tell application System Preferences activate
  • Create React App 中 Eject 做了什么?

    我认为这与直接使用 webpack 有关 因此提供了更多的灵活性 但我不完全确定是否有人可以解释 弹出 的含义 另外 弹出创建反应应用程序会产生什么后果 这样做是不好还是 引导一个react项目需要你了解诸如Webpack or Babel
  • Apple watchOS 2 加速计

    我正在考虑制作一个watchOS2使用加速度计的应用程序 如果应用程序在后台运行 它是否仍然能够接收来自加速度计的输入或CMMotionManager 仅当 watchOS2 应用程序运行时 您才能访问实时加速度计数据 但是 您可以访问加速
  • Angular 8嵌套路由和多个路由器出口不起作用

    我现在有一个简单的 Angular 8 3 应用程序 但路由不起作用 当我转到 logs 时 没有任何错误 但屏幕上没有显示任何内容 当我转到 logs detailed 1036 时 控制台中出现错误 错误 无法匹配任何路由 URL 段
  • 如何使用 UIPinchGestureRecognizer 设置最小和最大缩放比例

    我想放大和缩小图像视图 但我不想使用 UIScrollView 来实现这一点 所以为此我使用了 UIPinchGestureRecognizer 这是我的代码 recognizer view transform CGAffineTransf
  • 代码签名错误:身份“iPhone Developer: x Xxxxx”与任何配置文件中的任何身份都不匹配

    当我构建 iPhone 项目以在我的设备上运行时 出现此构建错误 Code Sign error The identity iPhone Developer x Xxxxx doesn t match any identity in any
  • 使用摇动效果向左和向右制作 WPF 窗口动画?

    有人可以告诉我如何从当前位置为窗口设置动画吗 我正在寻找一种摇动效果 只需左右摇动窗口 5 到 6 次 我知道我需要使用Animation By 这是我已经开始但还没有走得太远的事情 然而这不起作用
  • 在 Numpy / Pandas 中生成所有平行对角线之和的直接方法?

    我有一个矩形 不能假设为正方形 Pandas DataFrame 的数字 假设我选择一个对角线方向 从左上到右下 或 从右上到左下 我想计算一个系列 其条目是原始 DataFrame 沿选定的一组平行对角线的值的总和 要完全指定目标 您需要
  • 如果鼠标在元素内部,则延迟 mouseenter 事件并引发事件

    我使用这个基于 jQuery 开发的选项卡视图 https d2o0t5hpnwv4c1 cloudfront net 001 Tabbed site jQuery html https d2o0t5hpnwv4c1 cloudfront
  • 模拟拖动窗口标题栏的控件

    我已经构建了一个自定义控件 我希望允许人们单击并拖动我的控件 就像在窗口标题栏上拖动一样 做这个的最好方式是什么 到目前为止 我未能成功地利用鼠标向下 向上和移动事件来破译何时需要移动窗口 除了我的其他答案之外 您还可以在控件中手动执行此操
  • 将多个子视图传递给 SwiftUI 中的视图

    我创建了一个 Swift 包 它根据传递给它的内容数组创建多个 PageTabView import SwiftUI public struct WhatsNewView
  • 登录后活动管理员重定向

    当管理员登录时 它会自动重定向到主主页 即不是管理仪表板 我不确定为什么会这样做或如何改变它 路线 rb ActiveAdmin routes self devise for admin user ActiveAdmin Devise co
  • 匹配最长重复序列的正则表达式

    我想匹配至少重复一次的最长序列 Having T send ack new amend pending cancel replace replaced cancel pending cancel replace replaced 结果应该是
  • Sql Server 更改数据捕获:添加列时保留历史记录?

    将新列添加到配置为更改数据捕获 cdc 的表时 捕获实例表不会有新列 直到为源表禁用并重新启用 cdc 在此过程中 现有的捕获实例将被删除 我想我可以将现有数据复制到临时表中 然后使用以下 SQL 复制回来 但是 其他 CDC 元信息 例如
  • 添加 GROUP BY 子句产生的列

    我遇到了这样的情况 使用 GROUP BY 后需要从两行添加列 我的查询如下 select AcctId DC sum TrnAmt from TableId group by AcctId DC order by AcctId DC Re
  • Android动画暂停和播放问题

    我使用以下代码创建了一个动画 private AnimationSet rootSet new AnimationSet true private int xstart 258 private int ystart 146 for k
  • 按名称获取班级

    我可以通过名称获取一个类吗 例如 class Foo class Bar let x Foo classByString x need to return Foo 我想使用元编程来减少代码维护 您可以使用NSClassFromString
  • WPF 控件中的本机 Win32 窗口

    我正在开发一个需要主机本机 Win32 窗口的应用程序 但不知何故我不知道如何做到这一点 我需要创建一个可以在其上显示本机 Win32 控件的 WPF 对话框窗口 该对话框窗口上也将具有 WPF 控件 因此我正在寻找某种可以获取 HWND