Select Case uMsg
'***************
Case ABM_ACTIVATE
'Debug.Print "ABM_ACTIVATE", wParam, lParam
If wParam Then
'окно активируется
'сообщение ABM_ACTIVATE приходит всегда при показе окна, но окно может не иметь фокус ввода, поэтому ещё проверим через GetForegroundWindow
If frmMain.hwnd = GetForegroundWindow Then LoadBorderActive True
Else
'окно деактивируется, если frmMain.Visible=False - окно прячется и менять бордюр нет смысла
If frmMain.Visible Then LoadBorderActive False
End If
End Select
Я тут, и я жив. Только вот по основной теме как-то сказать особо и нечего: сам с таким никогда не сталкивался, в сети данных тоже не нашел (быстрым гуглингом), вот и не постил.Space писал(а):Живее живых, ты там жив?
Наверно хук тебе вполне подойдет.Space писал(а):А как можно отловить любой клик на форме (т.е. типа KeyPreview, когда клик на контролах ловится ещё и формой)?
Это в смысле "помигать ораньжевеньким на панели задач?" или что?Space писал(а):я же писал, при активации моего окна мне надо подсветить бордюр окна, сообщение об активации приходит некорректно. Или надо ловить другое какое-то сообщение?
Поздравляю!Йода писал(а):З.Ы. Ура! У меня появилась первая звёздочка!!!
Совершенно не обязательно: Пуск-Панель управления-Экран-Оформление-Дополнительно: Заголовок активного окна = Заголовок неактивного окна. Зачем? А я хочу чтобы окна так выглядели. И они будут так выглядеть. Потому что мне так нравится. И вообще, если какая-то программа будет мне указывать какого цвета у неё бордюр, она будет моментально снесена.Space писал(а): Когда окно активно, один цвет бордюра окна, неактивно - другой!
Select Case uMsg
'***************
Case WM_NCACTIVATE
If wParam Then
Debug.Print "Active "; lParam; wParam
SetBorderActive True
Else
Debug.Print "DeActive "; lParam; wParam
SetBorderActive False
End If
...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42