Code: Select all
#include "windows.bi"
Dim shared hDC As HDC
Function WndProc(ByVal hWnd As HWND, ByVal msg As UINT, ByVal wParam As WPARAM, ByVal lParam As LPARAM) As LRESULT
Select Case msg
Case WM_CREATE
Dim ArialFont As HFONT
Dim OldFont As HFONT
ArialFont = CreateFont(40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Arial")
OldFont = SelectObject(GetDC(hWnd), ArialFont)
DeleteObject OldFont
SetBkMode(GetDC(hWnd), TRANSPARENT)
case WM_LBUTTONDOWN
print "WM_LBUTTONDOWN"
case WM_MOUSEMOVE
print "WM_MOUSEMOVE"
lineto(hdc,100,100)
Case WM_PAINT
Dim ps As PAINTSTRUCT
hDC = BeginPaint( hWnd, @ps )
TextOut hDC, 10, 10, "Hello, Windows!", 15
EndPaint hWnd, @ps
Case WM_DESTROY
PostQuitMessage 0
Case Else
Return DefWindowProc( hWnd, msg, wParam, lParam )
End Select
End Function
Dim hInstance As HINSTANCE
dim wMsg as MSG
dim wcls as WNDCLASS
dim szAppName as string
dim hWnd as HWND
hInstance = GetModuleHandle(NULL)
szAppName = "HelloWin"
with wcls
.style = CS_HREDRAW or CS_VREDRAW
.lpfnWndProc = @WndProc
.cbClsExtra = 0
.cbWndExtra = 0
.hInstance = hInstance
.hIcon = LoadIcon( NULL, IDI_APPLICATION )
.hCursor = LoadCursor( NULL, IDC_ARROW )
.hbrBackground = GetStockObject( GRAY_BRUSH )
.lpszMenuName = NULL
.lpszClassName = strptr( szAppName )
end with
if( RegisterClass( @wcls ) = FALSE ) then
MessageBox( null, "Failed to register wcls!", szAppName, MB_ICONERROR )
End
end if
hWnd = CreateWindowEx( 0, _
szAppName, _
"The Hello Program", _
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, _
NULL, NULL, hInstance, NULL )
ShowWindow( hWnd, SW_NORMAL )
UpdateWindow( hWnd )
while( GetMessage( @wMsg, NULL, 0, 0 ) <> FALSE )
TranslateMessage( @wMsg )
DispatchMessage( @wMsg )
wend