问题标签 [setparent]

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 投票
1 回答
1458 浏览

c# - setParent 后子窗口的奇怪行为

我尝试使用以下代码在我的 Winform 应用程序中嵌入“Windows Journal”应用程序。它有效,一切看起来都很好。但是,当我开始使用 Windows Journal 应用程序(它已经是我的应用程序的子窗口)时,我发现鼠标的行为不一致。更具体一点,例如,我试图画一条从 (x, y) 到 (x+100, y) 的线,但这条线在 (x-50, y-50) 到 (x, y-50)。我使用“鼠标同步/不一致”、“setparent 后应用程序异常行为”、“子窗口的奇怪行为”等关键字进行谷歌搜索,但尚未找到任何相关解决方案。我也尝试在setParent之前清除WS_POPUP样式,但是没有用。谁能给我一些想法?谢谢。

代码位于名为 JournalControl.cs 的控制器中,而 JournalControl 位于应用程序主窗体中的 splitContainer.Panel 中。因此,当单击主窗体的按钮时,首先打开用户在 Journal 应用程序中指示的 jnt 文件

然后在 timCheckJournal_Tick() 中,将应用程序放入 Panel

0 投票
1 回答
179 浏览

winapi - WinAPI 更改 ListView 控件的父级

我正在开发一个带有选项卡控件的应用程序。单击选项卡中的图标后,将打开一个弹出窗口,并将选项卡的内容移至弹出窗口。

我所做的很简单 - 将选项卡中每个控件的父级更改为弹出窗口(使用 SetParent())。除了列表视图控件(虚拟列表视图)之外,一切都很好。

更改父级后,列表视图不再发送 WM_NOTIFY 通知。

我还使用非虚拟列表视图对其进行了测试,并且发生了同样的情况。

我在谷歌上搜索过,一无所获,所以任何想法都将不胜感激。

更新

更改父级后,列表视图继续向其先前的父级发送 WM_NOTIFY 通知。这是常见控件中的错误吗?

0 投票
3 回答
1224 浏览

ms-access - 使用 SetParent 使 Access 表单从 Access 中转义

我一直在尝试让 Microsoft Access 从主 Access 窗口中“退出”,这样我就可以隐藏 Access 窗口并仅在桌面上显示表单,以便可以轻松地将其放置在其他应用程序旁边。

起初我发现了一些使用 Access 自己的 Form.PopUp 属性的代码示例,但这不能在运行时设置,只能在设计视图中设置。尽管这似乎实现了我想要做的事情,但有两个缺点:

  1. 在设计视图和普通视图之间切换需要“关闭”两者之间的窗口 - 我宁愿保持打开状态以保留当前状态,特别是因为它用于创建必须未保存的新记录。

  2. 我想从主表单打开其他表单,除非它们也被设置为“弹出”,否则这些表单似乎也不适用于这种方法。但这很麻烦,因为这些也需要放入设计视图等,我不确定在两个弹出窗口之间切换是否容易。

然后我找到了一个名为 SetParent 的 API 函数,它似乎可以满足我的需要。我使用了以下命令(VBA 语法):

但我遇到了两个问题(可能相关:

  1. 该窗口似乎反应迟钝(例如,我无法输入它,并且单击按钮似乎也不起作用)。

  2. 当我执行 ALT+TAB 时,我得到了一个 BSOD:

    /li>

有没有其他方法可以做到这一点,以便我可以拥有一个没有访问窗口的表单,该访问窗口能够在主访问窗口之外调用和显示其他访问表单?

我在SetParent API 文档中注意到还有一些其他事情需要完成 - 更改 UI 状态和更改窗口样式,但我找不到正确的方法来完成它们。这样做会解决 BSOD 和无响应问题吗?

感谢您的任何想法!

0 投票
1 回答
865 浏览

c# - 将 win32 托管到 wpf 在 Windows 7 中不起作用

我在 Windows 8 中开发 WPF,并成功使用 pinvoke user32.dll 将 win32 窗口托管到 WPF。但是当我使用 Windows 7 构建时,非 WPF 应用程序没有托管到 WPF 中的表单面板中。它打开另一个窗口,例如启动该应用程序。

这是我的代码:

是否有一些不同的方法可以使用 user32.dll 使用 WindowFormHost 将 win32 窗口托管到 WPF?

0 投票
1 回答
680 浏览

vb.net - 在 VB.NET 表单中打开 Lotus Notes

我已经在这里阅读了将近 5 年,但这是我在这里的第一篇文章。

我目前正在开发一个 VB.NET 项目,在该项目中我需要在窗口窗体中打开 Lotus Notes。我尝试使用在这里看到的 SetParent 功能

http://xtremevbtalk.com/showthread.php?t=272163

它对我有用,但问题是,当我的 Lotus Notes 客户端上的一个窗口关闭时,整个客户端都会关闭。当我尝试重新打开邮件时,它会显示内存不足的错误或根本没有响应。

图像显示在 VB.NET 表单中打开的 Lotus Notes

Lotus Notes 在 VB.NET 表单中打开

我尝试按此处所述增加注册表上的堆大小值,但问题仍然存在。

http://forum.sysinternals.com/insufficient-memory_topic17945.html

图像显示当我单击 button1 时 Lotus Notes 未打开

单击按钮 1 时 Lotus Notes 未打开

我也怀疑内存不足错误是否正确,因为当我检查任务管理器时,内存使用率并不高。

http://i61.tinypic.com/33jtyxe.png

非常欢迎任何意见和解决方案。

TIA。

罗斯

0 投票
2 回答
1668 浏览

qt - 在 QApplication 上使用 Windows::SetParent 时 GUI 冻结

这是关于Windows下两个Qt程序的通信。一个程序,我们称他为客户端,另一个程序,称为服务器。情况:我想将客户端放在服务器的 QWidget 中。Windows 已经提供了一些很好的方法来移除装饰(边框、标题栏等)并更改窗口的父级,因此重新绘制、调整大小、激活窗口都由 Windows 负责。当我使用 QProcess 启动我的客户端时,我等待它启动,以便有一个可以与之交谈的窗口。然后我删除装饰并将服务器的 QWidget 设置为父级。全部用这段代码完成:

这一切都很完美,我的客户很好地放在了我的标签上,所有的重绘等工作都很完美。但是,我面临的问题是有时(并非总是!)服务器的按钮没有响应。我注意到当这种情况发生时,只要按钮位于屏幕中间,它们就不会响应。但是,最奇怪的是,如果我移动整个窗口,使按钮靠近屏幕边缘 - 它们可以工作!如果我将它移回中心 - 他们会再次停止工作。任何想法??有人?

我还尝试了以下代码:

使用此解决方案,GUI 没有冻结,但键盘现在在客户端窗口中不起作用 - 在内部窗口中。例如 - 如果内部窗口是记事本 - 我不能在里面输入,但我可以使用鼠标。知道可以做什么吗?

0 投票
1 回答
499 浏览

c# - 在窗口打开之前设置窗口的父级

我正在使用SetParent在我的应用程序中托管外部应用程序(使用WindowsFormHost)。
流程是这样的:

  1. 我打开我的应用
  2. 我打开外部应用程序programmaticly
  3. 我使用 SetParent 在我的应用程序中托管它。

由于上述流程,当外部应用程序打开时,我可以在任务栏/任务管理器中看到它一瞬间(直到设置父级)。

我可以以某种方式更改它首先设置父级然后打开应用程序的顺序吗?我想要的只是避免我刚才描述的内容。
如果您对我的问题有任何其他解决方案,我将很乐意接受。


编辑:
这是我的代码

0 投票
1 回答
252 浏览

vb.net - Windows-8 下的 SetParent API 更改应用程序菜单和功能区的字体大小

我有一个 VB.NET 应用程序,它使用 SetParent API 将 Worddocument 放入我的应用程序的 GroupBox 控件中。

在桌面上打开 Word 后,代码与消息框一起停止,然后 Wordwindow (Word 2013) 看起来完全正常。

然后 SetParent-API 将 Wordwindow 从桌面移动到 myForm 上的 myGroupBox。到目前为止,这在任何操作系统上都运行良好,但是我最近将我的应用程序切换到 Windows-8(在 MS Surface Pro 3 上),现在在 SetParent 之后,带框的 Wordwindows 显示增加的菜单和功能区。现在 Word 菜单和功能区控件中的所有标题和选项卡突然变大了;字体大小要大得多(顺便说一句:Word 本身运行正常,Worddocument 本身中的任何文本也不受影响)。

有人知道这是怎么发生的吗?之后可以以编程方式防止或纠正这种情况吗?

0 投票
1 回答
96 浏览

c# - 如何在我的 C# 程序面板中接管另一个正在运行的应用程序?

我想要做的是接管另一个正在运行的应用程序并将其附加到我的表单中的面板上,如下所示:

但就我而言,我不会启动应用程序,我将不得不接管现有的、正在运行的进程。

想法?

在此先感谢,丹。

0 投票
0 回答
219 浏览

user-interface - 关于使用 setparent(win32 api)将窗口嵌入到外部进程的问题

我只是想使用 SetParent 函数将我的进程中的一个窗口嵌入到外部进程的窗口中,但我发现应用程序在最小化后无法切换回来。

嵌入的窗口是WS_OVERLAPPEDWINDOW 样式的,改成WS_CHILD 可以解决这个问题。但出于其他原因,我们需要 WS_OVERLAPPEDWINDOW。

有人可以帮我吗?