Создание Крестика в центре экрана - VB
Формулировка задачи:
Помогите плиз. Хочу сделать так:
Вот чтобы открыл программу, нажал (допустим) на End и в центре экрана появился крестик Crosshair. Кто поможет? Плиз дайте код и обьясните че как делать. Заранее благодарен =)
Забыл, еще можно чтобы так: нажал на End-крестик появился, снова нажал на End - крестик исчез
Решение задачи: «Создание Крестика в центре экрана»
textual
Листинг программы
- Option Explicit
- Private Const WM_HOTKEY = &H312
- Public Const GWL_WNDPROC = -4
- Public Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
- Public Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As Long
- Public Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal lpString As String) As Long
- Public Declare Function GlobalDeleteAtom Lib "kernel32" (ByVal nAtom As Long) As Long
- Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
- Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- Public oProc As Long
- Public hAt As Long
- Dim EndState As Boolean
- Public Function WindowProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- Select Case Msg
- Case WM_HOTKEY
- If wParam = hAt Then EndState = Not EndState
- If EndState Then frmCross.Move (Screen.Width - frmCross.Width) / 2, (Screen.Height - frmCross.Height) / 2
- frmCross.Visible = EndState
- End Select
- WindowProc = CallWindowProc(oProc, hwnd, Msg, wParam, lParam)
- End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д