Ваша форма поверх всех окон, таскание вашей формы за любое место:
Как я и обещал, в этом уроке мы разберем более сложные примеры программирования, но и более интересные и нужные. Наша сегодняшняя задача научиться делать, что бы форма была поверх других форм и таскание формы за любое место. Первая задача так же может подходить для усовершенствования урока №4 или для приколов. Может быть в следующем или через один урок расскажу, как сделать какой-нибудь прикол. Ну, а пока...
- Создайте форму с именем
Теперь вставляем этот код в модуль:
Public Declare FunctionSetWindowPos Lib "user32" _ (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _ByVal cy As Long, ByVal wFlags As Long) As Long Public Const HWND_NOTOPMOST = -2 Public Const HWND_TOPMOST = -1 Public Const SWP_NOACTIVATE = &H10 Public Const SWP_NOMOVE = &H2 Public Const SWP_NOSIZE = &H1Public Sub SetFormPosition(frmHand1 As Long, TopPosition As Boolean) If TopPosition Then SetWindowPos frmHand1, HWND_TOPMOST, 0, 0, 0, 0, _ SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE Else SetWindowPos frmHandl, HWND_NOTOPMOST, 0, 0, 0, 0, _ SWP_NOSIZE Or SWP_NOMOVE End If End Sub
Теперь добавляем в форму одну строчку, например, в процедуру
Form_Load:Private Sub
Form_Load() Call SetFormPosition(Me.hwnd, True)End Sub
Ну, а сейчас разберем, как таскать форму за любое "место" =). Иногда эта функция очень нужна ! Ни чего нового добавлять не нового добавлять не нужно. Смотрим и запоминаем:
ConstWM_NCLBUTTONDOWN = &HA1Const HTCAPTION = 2Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _(ByVal hWnd As Long, ByVal wMsg As Long, _ByVal wParam As Long, lParam As Any) As LongPrivate Declare Function ReleaseCapture Lib "user32" () As LongPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single,Y As Single) Call ReleaseCapture Call SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)End SubВсе. Запускаем и таскаем форму, которая поверх всех окон, за любое место =)!
Как видите сегодня нет ни одного комментария, т.к. это API функции, а как их комментировать я чего-то не знаю =). Если кто знает, напишите, не поленитесь ! Так же нет скриншотов, так как нечего скриншотить =) ! Жду ваших часов с применением сегодняшнего урока. Обязательно ! =) Готовый пример я писать не стал, лень... честно, просто не охота ! Может попозже.
P.S. Если вы думаете, что "_" это какой-то секретный знак, то ошибаетесь ! Это просто означает перенос строки !