c++ - 如何在 Window (Win32) 中保留自定义文本

标签 c++ windows winapi window

我们可以设置窗口文本:

BOOL WINAPI SetWindowText(
  __in      HWND hWnd,
  __in_opt  LPCTSTR lpString
);

这个窗口文本是另一个应用程序的

int WINAPI GetWindowText(
  __in   HWND hWnd,
  __out  LPTSTR lpString,
  __in   int nMaxCount
);

我不想更改表单标题,但我想在窗口中保留自定义文本,并通过同一程序的另一个实例获取此文本。我怎样才能实现这个目标?

最佳答案

一个简单的方法是:

  1. 定义您自己的WM_APP message ,您的应用程序的哪个实例 A 将使用它告诉实例 B 的窗口“向我发送您的私有(private)文本”。
  2. 当实例 B 收到此消息时,它可以使用 WM_COPYDATA向实例 A 的窗口发送回复。
  3. 实例 A 从 WM_COPYDATA 接收数据并对其执行所需操作。

此方案允许您发送任意数据(只要不包含指针),前提是数据相当小(比如最多几 KB)。它也很容易实现。它缺乏的是安全控制,因此如果您必须防止坏人从您的应用程序中检索此数据,您将需要使用更耐用的东西。

关于c++ - 如何在 Window (Win32) 中保留自定义文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4593784/

相关文章:

c++ - 粘贴形成了一个无效的处理 token '.'

Python 3.3 如何将此递归函数转换为纯 yield 循环版本?

C++ WinAPI TextOut() 更新文本

java - 如何将 logback 文件路径推广到 windows/linux 操作系统?

winapi - 在 WindowsNT(最近的 x86 版本,Vista 和 Win7)下从用户模式切换到内核模式时,线程做了什么?

c++ - SymInitialize 失败,错误为 2147483661

c# - Console.Write() 将在 WPF 中挂起,但在控制台应用程序中有效

C++ directx 9 网格纹理

c++ - 我怎样才能找到下载的 C++ 软件源代码的结构

c - 为什么 HeapFree 之后堆内存仍然可以访问