Здравствуйте, Viktor Sklyar, Вы писали:
VS>Некоторые функции я знаю как перевести: SetWindowPos(), SetFocus().
VS>А как поступить с остальными не знаю... VS>Особенно интересно что делать GDI-шными функциями.
VS>Помогите пожалуйста разобраться. http://www.pinvoke.net
Здравствуйте, orangy, Вы писали:
VS>>Помогите пожалуйста разобраться. O>http://www.pinvoke.net
Сайт конечно интересный, но к сожалению сырой.
Многие вещи там еще предстоит заполнить
(Я даже дописал там, что Unmanaged API SetFocus()
соответствует Managed Focus() )
Здравствуйте, Viktor Sklyar, Вы писали:
VS>>Hello All.
VS>Исследовал я исходники Миранды. Там данная проблема решена. VS>Вот кусок кода на C++, который определяет не перекрывается VS>ли заданное окно другими:
VS>
Этот код всего лишь проверяет, лежит ли окно поверх остальных non-topmost окон.
Кроме того, он переносит окно наверх, делает его foreground, неверно работает для topmost окон (убирает topmost).
То же самое можно сделать через EnumWindows или GetWindow — они перебирают top-level окна в Z-порядке.
RB>Этот код всего лишь проверяет, лежит ли окно поверх остальных non-topmost окон.
Не только, самое главное он определяет перекрывается ли окно другими.
[skip]
RB>То же самое можно сделать через EnumWindows или GetWindow — они перебирают top-level окна в Z-порядке.
Здравствуйте, Viktor Sklyar, Вы писали:
VS>Здравствуйте, rus blood, Вы писали:
RB>>Этот код всего лишь проверяет, лежит ли окно поверх остальных non-topmost окон. VS>Не только, самое главное он определяет перекрывается ли окно другими.
Ну, если конечно это то, что ты хотел...
Просто если окно твоего приложения лежит поверх других non-topmost окон, а окно текущего foreground приложения является topmost окном, то эта функция выдает, что foreground-ом является твое приложение, а не то, с которым действительно работает юзер.
Причем, независимо от того, перекрыто твое окно приложения или нет.
RB>>>Этот код всего лишь проверяет, лежит ли окно поверх остальных non-topmost окон. VS>>Не только, самое главное он определяет перекрывается ли окно другими. RB>Ну, если конечно это то, что ты хотел...
Конечно, хотя я не совсем понимаю зачем дергать ТорMost,
но основная работа, сдается мне, состоит в проверке
видимости региона заключающего данное окошко, т.е.
если регион не перекрывается другими, то окошко видимо полностью.
VS>Конечно, хотя я не совсем понимаю зачем дергать ТорMost, VS>но основная работа, сдается мне, состоит в проверке VS>видимости региона заключающего данное окошко, т.е. VS>если регион не перекрывается другими, то окошко видимо полностью.
Но это неверно. Окно может быть скрыто полностью или частично другим topmost окном, и эта функция вернет, что все ок, окно foreground.