Как определить дескриптор окна, на которую указывает мышь ? - страница 3

 
LEOK:

Приведите плз. рабочий код ?!

Данная конструкция всегда печатает ноль, хотя координаты мыши считывает правильно:

Вот рабочий код:

#import "user32.dll" 
    bool  GetCursorPos   ( int& Pos[] );
    int   WindowFromPoint( int x, int y );
#import

int Mouse[2];

int start() {
    GetCursorPos( Mouse );
    int WFP = WindowFromPoint( Mouse[0], Mouse[1] );

    Print( WFP );

    return(0);
}
 
Ko1dun:

Вот рабочий код:


Надо же !

Работает!

А как вы догадались ? Ведь у этой функции 1 параметр !

 
LEOK:


А как вы догадались ? Ведь у этой функции 1 параметр !

Эта функция принимает свой аргумент по значению, то есть в стек записываются друг за дружкой все члены структуры.

А мы их записываем по отдельности, в результате получается тоже самое.

 
Ko1dun:

Эта функция принимает свой аргумент по значению, то есть в стек записываются друг за дружкой все члены структуры.

А мы их записываем по отдельности, в результате получается тоже самое.


Спасибо!


Может быть подскажите как перерисовать окно, теперь уже зная дескриптор ?!

UpdateWindow (int hWnd); - не работает, хотя параметр один !

Приходится его сначала прятать, а потом опять всё перерисовывать. Получается моргание ...

 
Надо перерисовать окно или обновить график?
 
Zhunko:
Надо перерисовать окно или обновить график?


Перерисовать окно или дочернее окно, чтоб не моргало !

Сейчас делается так:
ShowWindow (Whld,0);
ShowWindow (Whld,1);

Если эту проблемку решить - то, со временем, покажу интересный фильм про МТ4 !!!

 
InvalidateRect();
 
Zhunko:


Эта функция включает определённый прямоугольник окна в область обновления окна.

Я так понял она не обновляет сама, а только включает.

А UpdateWindow (..) - всё равно надо вставлять в текст для обновления ?!

 
Да. Попробуйте.
 
Zhunko:
Да. Попробуйте.


Попробовал. Пока не получается. Окно не обновляется.

        InvalidateRect (Whld, Rect[0],Rect[1],Rect[2],Rect[3], true);
Причина обращения: