我有一个应用程序,点击按钮上有一个按钮我试图将已经可用的文本粘贴到记事本。我的应用程序首先收集文本并将其放在剪贴板上(这非常正常),我遇到了粘贴部分的问题。这是代码,请让我知道我哪里出错了。
CWnd *pCwnd = FindWindow(NULL, _T("Untitled - Notepad"));
HWND handle = pCwnd->GetSafeHwnd();
pCwnd->PostMessageA(WM_PASTE,0,0);
我正在使用记事本对其进行测试,因此名称为(“Untitled - Notepad”)。 请帮我。提前谢谢。
答案 0 :(得分:3)
我不使用MFC,但你可以翻译成你需要的东西。问题是您需要将消息发送到编辑控件,而不是主窗口。
#include <Windows.h>
#include <string>
#include <cstdlib>
int main()
{
const std::string data("This is some text from the clipboard.");
HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, data.size() + 1);
std::memcpy(GlobalLock(hMem), data.c_str(), data.size() + 1);
GlobalUnlock(hMem);
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_TEXT, hMem);
CloseClipboard();
HWND mainWindow = FindWindow(NULL, "Untitled - Notepad");
HWND editWindow = FindWindowEx(mainWindow, NULL, "edit", NULL);
PostMessage(editWindow, WM_PASTE, 0, 0);
return 0;
}