У меня есть код, который PostMessage (), который вставляет текст из текста буфера обмена в блокнот. Теперь в другом приложении их два поля редактирования, в этом случае я хочу вставить текст, затем произойдет событие Enter TAB Key Press (т. Е. С помощью PostMessage () отправить событие клавиши TAB), чтобы перейти к следующему элементу управления редактирования, а затем снова я отправит PostMessage (), чтобы вставить текст из буфера обмена. Я могу сделать это для одного текстового поля. Как я могу сделать это с двумя или, скажем, три окна редактирования. Вот что я попробовал.
//CWnd *pWnd=FindWindow(NULL,_T("Untitled - Notepad"));
CWnd *pWnd=FindWindow(NULL,_T("Visual SourceSafe Login"));
HWND mainHwnd = pWnd->GetSafeHwnd();
CString csNameOfWin;
pWnd->GetWindowTextA(csNameOfWin);
CWnd *EditHwnd = FindWindowEx(mainHwnd,NULL,"edit",NULL);
EditHwnd->PostMessageA(WM_PASTE,0,0);
EditHwnd->PostMessageA(VK_TAB,0,0);
EditHwnd->PostMessageA(WM_PASTE,0,0);
Но это не работает для меня, может кто-нибудь, пожалуйста, скажите мне, в чем проблема с кодом.
Пожалуйста, проведите меня по правильному пути. Заранее спасибо.
Ты не хочешь WM_KEYDOWN
/VK_TAB
, Ты ищешь WM_NEXTDLGCTL
.
Других решений пока нет …