Благодаря этой доске я могу получить координаты окна с известным заголовком, но мне нужно получить координаты, если окно перемещается или изменяется его размер. Я новичок в MS Visual C ++, любая помощь в этом от экспертов будет так проделана .... Вот мой код, который я получил от этого великого форума, чтобы получить рукоятку определенного окна (эта функция называется Java Программа через JNI:

JNIEXPORT jint JNICALL Java_JavaHowTo_getHwnd
     (JNIEnv *env, jclass obj, jstring title){

HWND hwnd = NULL;
const char *str = NULL;

str = (*env)->GetStringUTFChars(env, title, 0);

hwnd = FindWindow(NULL,str);

(*env)->ReleaseStringUTFChars(env, title, str);

return (jint) hwnd;
0
RandyKahn 15 Апр 2011 в 03:02
Если делать HWND, напрямую, wm_move и wm_resize, вероятно, являются соответствующими событиями. «Просто» установить новый обработчик прокси WNDPROC. Или, возможно, просто опрос периодически координаты окна (это Многое проще).
 – 
user166390
15 Апр 2011 в 03:06
Это окно принадлежит другому процессу? Это серьезно усложняет вашу жизнь.
 – 
Hans Passant
16 Апр 2011 в 19:38

1 ответ

В дополнение к WM_SIZE, WM_MOVE, вы также можете попробовать WM_WindowPlangeNing. См. эту тему http:/ /social.msdn.microsoft.com/forums/en-us/vcmfcatl/thrad/78229960-8DBA-46A5-8F0B-90896A7C9F1D/ .

0
Sujay Ghosh 15 Апр 2011 в 11:56
Спасибо за ответ, позвольте мне последовать. Но комментарий «pst» немного обескураживает, поскольку я продолжаю над этим работать. Технически, это тот же процесс, что и программа Java (вызывая этот компонент C ++), называется из веб-страницы браузера, и я хочу только HWND окна браузера, ни другое окно. Разве это не часть того же процесса?
 – 
RandyKahn
17 Апр 2011 в 23:25
, Я так думаю. Возможно, вы сможете перехватить события и увидеть, как это работает. Я не знаю Java, поэтому не могу комментировать, нужно ли вам устанавливать WNDPROC. Если вы используете MFC, вам не нужно переопределять WNDPROC, просто перехватывайте событие.
 – 
Sujay Ghosh
18 Апр 2011 в 10:00