我有一个窗口句柄及其 richEdit 控件。我可以用我自己的控件替换上述控件吗?我希望它的行为与原来的一样,即成为窗口的一部分等等。
我将进一步详细说明该场景 - 我目前正在反汇编一个应用程序,其功能之一是文本编辑器。我当前的(受限)环境中有各种程序 Hook ,其中之一会产生编辑器窗口的句柄。另一个允许我获取 RichEdit20A 控件窗口宿主的句柄。
我想做的是 - 用我自己的控件(大概是它的 .NET 等价物)覆盖控件并修补应用程序的 GetWindowText 调用以使用新控件。为了实现它,我计划用 C#/托管 C++ 编写类库并将其导入我的应用程序(用非托管 C++ 编写)。
此外,可以有任意数量的文本编辑器实例。
最佳答案
这听起来太复杂了。只需替换它的 WndProc(GWL_WNDPROC
),什么也不转发,然后使 HWND 失效。这将强制重绘 (WM_PAINT
),然后您可以捕获它。所有者可能甚至不会注意到(当然,除非他们也把它钩住了)
关于c# - 在运行时用另一个窗口控件替换窗口控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2426235/