
Option Explicit
Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As Any, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Private Declare Function RegisterClass Lib "user32.dll" Alias "RegisterClassA" (Class As WNDCLASS) As Long
Private Type WNDCLASS
style As Long
lpfnwndproc As Long
cbClsextra As Long
cbWndExtra2 As Long
hInstance As Long
hIcon As Long
hCursor As Long
hbrBackground As Long
lpszMenuName As String
lpszClassName As String
End Type
Private Const WS_OVERLAPPED As Long = &H0&
Private Const WS_MINIMIZE As Long = &H20000000
Private Const WS_MINIMIZEBOX As Long = &H20000
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const WS_MAXIMIZE As Long = &H1000000
Private Const WS_CAPTION As Long = &HC00000
Private Const WS_SYSMENU As Long = &H80000
Private Const WS_THICKFRAME As Long = &H40000
Private Const WS_VISIBLE As Long = &H10000000
Private Const WS_OVERLAPPEDWINDOW As Long = WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
Private Const COLOR_BACKGROUND As Long = 1
Private Const COLOR_DESKTOP As Long = COLOR_BACKGROUND
Private Sub Form_Load()
Dim w As WNDCLASS
w.hbrBackground = COLOR_DESKTOP + 1
w.hInstance = App.hInstance
w.lpfnwndproc = Wrapper(AddressOf WndProc)
w.lpszClassName = "MyCoolWindow"
CreateWindowEx 0, RegisterClass(w), "My Window Instance", WS_OVERLAPPEDWINDOW Or WS_VISIBLE, 10, 10, 100, 100, 0, 0, App.hInstance, ByVal 0&
End Sub
Option Explicit
Private Declare Function DefWindowProc Lib "user32.dll" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Function WndProc(ByVal hwnd As Long, ByVal umsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
WndProc = DefWindowProc(hwnd, umsg, wParam, lParam)
End Function
Public Function Wrapper(ByVal a As Long) As Long
Wrapper = a
End Function
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13