FINALY a update sorry it took so long, every time i am going to upload a update i always see something that needs done. and that leeds to other things that i want to do lol.
Well here are the new updates
Combo box added(a drop down listbox thing)
Doesn't look like much but this update also includes the stuff from above lol.
theres a screen shot attatched and heres the code (no media needed)
Function Win_ActivateWindow(hWnd)
WinData(hWnd, 18) = 1
Win_UpdateWindow(hWnd)
if Win_IsWindow(WinData(hWnd, 9))
WIn_UpdateWindow(WinData(hWnd, 9))
endif
Win_Sys_UpdateBitmap(0)
endfunction
Function Win_DeActivateWindow(hWnd)
WinData(hWnd, 18) = 0
Win_UpdateWindow(hWnd)
if Win_IsWindow(WinData(hWnd, 9))
WIn_UpdateWindow(WinData(hWnd, 9))
endif
Win_Sys_UpdateBitmap(0)
endfunction
Function Win_IsActive(hWnd)
if WinData(hWnd, 18) = 1
exitfunction 1
else
exitfunction 0
endif
endfunction -1
Function Win_DestroyWindow(hWnd)
Win_SortWindowProcedure(hWnd, WM_DESTROY(1), 0, 0)
endfunction
Function Win_UpdateWindow(hWnd)
Win_SortWindowProcedure(hWnd, WM_PAINT(1), 0, 0)
endfunction
Function Win_Sys_Initiate(FrontBmp, BackBmp)
WinSysData(1) = BackBmp
WinSysData(2) = FrontBmp
Create Bitmap BackBmp,Bitmap Width(0),Bitmap Height(0)
Create Bitmap FrontBmp,Bitmap Width(0),Bitmap height(0)
Win_RegisterClass(101, 0, RGB(192,192,192))
Win_RegisterClass(102, 0, RGB(255,255,255))
Win_RegisterClass(103, 0, RGB(192,192,192))
Win_RegisterClass(104, 0, RGB(192,192,192))
Win_RegisterClass(105, 0, RGB(255,255,255))
Win_RegisterClass(106, 0, RGB(192, 192, 192))
Win_RegisterClass(107, 0, RGB(128,128,128))
Win_RegisterClass(107, 0, 0)
endfunction
Function Win_RegisterClass(ClassNum, Icon, Background)
WinClass(ClassNum, 0) = 1
WinClass(ClassNum, 1) = Icon
WinClass(ClassNum, 2) = Background
endfunction
Function Win_CreateWindow(ClassNum, Name$, Flags, X, Y, Width, Height, Parent, Menu)
hWnd = 0;
For Z=1 to 500
if WinData(Z, 0) = 0 then hWnd = Z : Exit
next Z
if hWnd > 0
if Parent > 0
if WinData(Parent, 3) = WS_OVERLAPPED(1)
X = X + 4 : Y = Y + 23
endif
If WinData(Parent, 3) = WS_BORDER(1)
X = X + 1 : Y = Y + 1
endif
if Windata(parent, 8) > 0
Y = Y + 20
endif
For Z=1 to 500
if WinData(WinChild(Parent, Z)) = 0 then WinChild(Parent, Z) = hWnd : Exit
next Z
endif
WinData(hWnd, 0) = 1
WinData(hWnd, 1) = ClassNum
Win_SplitString(hWnd, Name$)
WinData(hWnd, 3) = Flags
WinData(hWnd, 4) = X
WinData(hWnd, 5) = Y
WinData(hWnd, 6) = Width
WinData(hWnd, 7) = Height
WinData(hWnd, 9) = Parent
WinData(hWnd, 8) = Menu
WinData(hWnd, 18) = 1
Img = Win_FindImage()
if Img = -1 then Win_Error("No More Images For Window", 3)
Get Image Img,0,0,Width,Height
WinData(hWnd, 10) = Img
Win_SendMessage(hWnd, WM_CREATE(1), 0, 0)
Win_UpdateWindow(hWnd)
if Flags = WS_CHILD(1) then WinSysData(4) = Parent
if Flags ! WS_CHILD(1) then WinSysData(4) = hWnd
if Win_IsWindow(parent) = 1
Win_UpdateWindow(Parent)
endif
if Menu > 0
endif
Win_Sys_UpdateBitmap(0)
WinData(0,1) = WinData(0,1) + 1
Exitfunction hWnd
endif
endfunction 0
Function Win_Mouseinside(X,Y,X2,Y2)
if mouseX()>X and MouseX()<X+X2
If mouseY()>Y and MouseY()<Y+Y2
exitfunction 1
endif
endif
endfunction -1
Function Win_SystemUpdate()
OnWin = 0
if WinData(0, 1) > 0
For hWnd = 1 to WinData(0, 1)
if Win_IsWindow(hWnd) = 1 and WinData(hWnd, 3) ! WS_CHILD(1) and Win_IsActive(hWnd) = 1
X = WinData(hWnd, 4) : Y = WinData(hWnd, 5) : Width = WinData(hWnd, 6) : Height = WinData(hWnd, 7)
if WinData(hWnd, 9) > 0 and WinData(hWnd, 3) = WS_CHILD(1)
Parent = WinData(hWnd, 9)
X = X + WinData(parent, 4) : Y = Y + WinData(Parent, 5)
endif
if Win_MouseInside(X, Y, 4, Height) = 1 and Mouseclick() or WInData(hWnd, 19) = 1 and Mouseclick()
if WinData(hWnd, 3) = WS_OVERLAPPED(1) and WinSysData(4) = hWnd and WinData(hWnd, 11) = 0
WinData(hWnd, 6) = WinData(hWnd, 6) + (WinData(hWnd, 4) - MouseX())
WinData(hWnd, 4) = WinData(hWnd, 4) - (WinData(hWnd, 4) - MouseX())
Win_UPdateWindow(hWnd)
Win_Sys_UpdateBitmap(0)
WinData(hWnd, 19) = 1
endif
endif
if Win_MouseInside(X, Y, Width, 4) = 1 or WinData(hWnd, 19) = 2
if WinData(hWnd, 3) = WS_OVERLAPPED(1) and WinSysData(4) = hWnd and Mouseclick() and WinData(hWnd, 11) = 0
WinData(hWnd, 7) = WinData(hWnd, 7) + (WinData(hWnd, 5) - MouseY())
WinData(hWnd, 5) = WinData(hWnd, 4) - (WinData(hWnd, 4) - MouseY())
Win_UPdateWindow(hWnd)
Win_Sys_UpdateBitmap(0)
WinData(hWnd, 19) = 2
endif
endif
if Win_MouseInside(X+Width-4, Y, 4, Height) = 1 or WinData(hWnd, 19) = 3
if WinData(hWnd, 3) = WS_OVERLAPPED(1) and WinSysData(4) = hWnd and Mouseclick() and WinData(hWnd, 11) = 0
WinData(hWnd, 6) = MouseX() - WinData(hWnd, 4)
Win_UPdateWindow(hWnd)
Win_Sys_UpdateBitmap(0)
WinData(hWnd, 19) = 3
endif
endif
if Win_MouseInside(X, Y + Height - 4, Width, 4) = 1 or WinData(hWnd, 19) = 4
if WinData(hWnd, 3) = WS_OVERLAPPED(1) and WinSysData(4) = hWnd and Mouseclick() and WinData(hWnd, 11) = 0
WinData(hWnd, 7) = MouseY() - WinData(hWnd, 5)
Win_UPdateWindow(hWnd)
Win_Sys_UpdateBitmap(0)
WinData(hWnd, 19) = 4
endif
endif
if Mouseclick() = 0
WinData(hWnd, 19) = 0
endif
if Win_MouseInside(X+4, Y+4, Width-4, 20) = 1 and WinData(hWnd, 3) = WS_OVERLAPPED(1) or WinData(hWnd, 11) = 1 and WinData(hWnd, 3) = WS_OVERLAPPED(1)
OnWin = hWnd
OnX = X : OnY = Y : OnWidth = Width : OnHeight = Height
X = X + 4 : Y = Y + 24 : Width = Width - 8 : Height = Height - 28
if WinSysData(4) = hWnd then Exit
else
OnWinTitle = 0
endif
If Win_MouseInside(X,Y,Width, Height) = 1 and WinData(hWnd, 0) > 0
OnWin = hWnd
OnX = X : OnY = Y : OnWidth = Width : OnHeight = Height
if WinSysData(4) = hWnd then Exit
else
Win_SendMessage(hWnd, WM_LBUTTONUP(1), 0, 0)
endif
if Mouseclick()=0
if WinData(OnWin, 16) = 1
Win_SendMessage(OnWin, WM_LBUTTONUP(1), 0, 0)
WinData(OnWin, 16) = 0
endif
if WinData(OnWin, 17) = 1
Win_SendMessage(OnWin, WM_RBUTTONUP, 0, 0)
WinData(OnWin, 17) = 0
endif
endif
endif
next hWnd
Win_Sys_CheckWindowInput(OnWin, WinData(OnWin, 9))
For X=1 to 100
if WinData(WinChild(OnWin, X), 3) = WS_CHILD(1)
Win_Sys_CheckWindowInput(WinChild(OnWin, X), OnWin)
endif
next x
endif
Copy bitmap WinSysData(2),0
set current bitmap 0
Clear Entry Buffer
endfunction OnWin
Function Win_Sys_CheckWindowInput(OnWin, Parent)
OnX = WinData(OnWin, 4) + WinData(Parent, 4) : OnY = WinData(Parent, 5) + WInData(OnWin, 5)
OnWidth = WinData(OnWin, 6) : Onheight = WinData(OnWin, 7)
If OnWin > 0 and WinData(OnWin, 0) > 0
if WinSysData(3) = OnWin
if Entry$() > ""
Win_SendMessage(OnWin, WM_KEYDOWN(1), asc(Entry$()), 0)
endif
endif
if WinData(OnWin, 3) = WS_OVERLAPPED(1)
if Win_MouseInside(OnX+4,OnY+4, OnWidth-22, 20) = 1 or WinData(OnWin, 11) = 1 and WinData(hWnd, 19) = 0
if Mouseclick() = 1
If WinData(OnWin, 11) = 0
WinData(OnWin, 12) = MouseX() - WinData(OnWin, 4)
WinData(OnWin, 13) = MouseY() - WinData(OnWin, 5)
endif
Win_SendMessage(OnWin, WM_MOVE(1),MouseX() - WinData(onWin, 12), MouseY()- WinData(OnWin, 13))
WinData(OnWin, 11) = 1
if WinSysData(4) ! OnWin
Win_SetTopWindow(OnWin)
endif
else
WinData(OnWin, 11) = 0
endif
endif
if Win_MouseInside(OnX + OnWidth - 7, OnY+4, 4, 20) = 1 and Mouseclick()
if WinSysData(4) ! OnWin
WInSysData(4) = OnWin
WIn_Sys_UpdateBitmap(0)
endif
endif
if WIn_MouseInside(OnX + 4 + OnWidth - 22, OnY + 6, 16, 14) = 1
if Mouseclick()=1 and WinData(hWnd, 14) = 0
WinData(OnWin, 14) = 1
Win_SendMessage(OnWin, WM_PAINT(1), 0, 0)
Win_Sys_UpdateBitmap(0)
endif
if Mouseclick() = 0 and WinData(OnWin, 14) = 1
WinData(OnWin, 14) = 0
Win_UpdateWindow(OnWin)
WIn_Sys_Updatebitmap(0)
Wait 10
Win_SendMessage(onWin, WM_DESTROY(1), 0, 0)
endif
else
if WinData(OnWin, 14) = 1
WinData(OnWin, 14) = 0
Win_SendMessage(onWin, WM_PAINT(1), 0, 0)
Win_Sys_Updatebitmap(0)
endif
endif
OnY = OnY + 24 : OnX = OnX + 4 : OnWidth = OnWidth + 8 : Onheight = OnHeight + 28
endif
If Win_MouseInside(OnX, OnY, OnWidth, OnHeight) = 1
if Mouseclick()=1
if WinData(OnWin, 16) = 0
WinData(OnWin, 16) = 1
Win_SendMessage(OnWin, WM_LBUTTONDOWN(1), 0, 0)
endif
if WinData(OnWin, 16) = 1
Win_SendMessage(OnWin, WM_LMOUSEHOLD(1), 0, 0)
endif
if WinData(onWin, 3) = WS_CHILD(1)
if WinSysData(3) ! OnWin
Hold = WinSysData(3)
WinSysData(3) = OnWin
Win_SendMessage(OnWin, WM_PAINT(1), 0, 0)
if WinData(Hold, 9) ! Windata(OnWin, 9) then Win_SendMessage(WinData(OnWin, 9), WM_PAINT(1), 0, 0)
if Win_IsWindow(Hold) > 0
Win_SendMessage(Hold, WM_PAINT(1), 0, 0)
Win_SendMessage(Windata(Hold, 9), WM_PAINT(1), 0, 0)
endif
Win_Sys_UpdateBitmap(0)
endif
endif
endif
if Mouseclick() = 2
if WinData(OnWin, 17) = 0
Win_SendMessage(OnWin, WM_RBUTTONDOWN, 0, 0)
WinData(OnWin, 17) = 1
endif
endif
if Mouseclick() = 1
if WinSysData(4) ! OnWin
if WinData(OnWin, 3) = WS_CHILD(1) and WinSysData(4) ! WinData(OnWin, 9)
Win_SetTopWindow(WinData(OnWin, 9))
endif
if WInData(OnWin, 3) ! WS_CHILD(1)
Win_SetTopWindow(OnWin)
endif
endif
endif
endif
if Mouseclick() = 0
if WinData(OnWin, 16) = 1
Win_SendMessage(OnWin, WM_LBUTTONUP(1), 0, 0)
WinData(OnWin, 16) = 0
endif
if WinData(OnWin, 17) = 1
Win_SendMessage(OnWin, WM_RBUTTONUP, 0, 0)
WinData(OnWin, 17) = 0
endif
endif
endif
endfunction
Function Win_Sys_UpdateBitmap(hWnd)
Copy Bitmap WinSysData(1),WinSysData(2)
Set Current Bitmap WinSysData(2)
For hWnd=1 to 500
if Win_IsWindow(hWnd) = 1 and WinData(hWnd, 9) = 0 and WinSysData(4) ! hWnd and WinData(hWnd, 3) ! WS_CHILD(1)
Paste Image WinData(hWnd, 10),WinData(hWnd, 4),WinData(hWnd, 5)
For X=1 to 100
if WinData(WinChild(hWnd, X), 0) = 1
if WinData(WinChild(hWnd, X), 3) ! WS_CHILD(1)
Paste image WinData(WinChild(hWnd, X), 10),WinData(WinChild(hWnd, X), 4),WinData(WinChild(hWnd, X), 5)
endif
endif
next x
endif
next x
hWnd = WinSysData(4)
if Win_IsWindow(hWnd) = 1 and WinData(hWnd, 9) = 0
Paste image WinData(hWnd, 10),WinData(hWnd, 4),Windata(hWnd, 5)
For X=1 to 100
If WinData(WinChild(hWnd, X), 0) = 1
if WinData(WinChild(hWnd, X), 3) ! WS_CHILD(1)
Paste Image WinData(WinChild(hWnd, X), 10),WinData(WinChild(hWnd, X), 4),WinData(WinChild(hWnd, X), 5)
endif
endif
next x
endif
Copy Bitmap WinSysData(2),0
endfunction 1
Function Win_IsWindow(hWnd)
if WinData(hWnd, 0) = 0
exitfunction -1
else
exitfunction 1
endif
endfunction 0
Function Win_SplitString(hWnd, String$)
for X=1 to Len(String$)
if Mid$(String$, X) = "\"
Char$ = "\" + Mid$(string$, X+1)
L$ = Left$(String$, X) : R$ = Right$(String$, Len(String$)-(X+1))
String$ = L$ + R$
else
Char$ = Mid$(String$, X)
endif
WinText$(hWnd, X) = Char$
if Char$ = "\0"
exit
endif
next x
if Right$(string$, 2) ! "\0"
WinText$(hWnd, Len(String$)+1) = "\0"
endif
endfunction Mem
Function Win_ExtractString(hWnd)
Text$ = "" : X = 1
Word$ = ""
if Win_IsWindow(hWnd) > 0
While Text$ ! "\0"
Text$ = WinText$(hWnd, X)
if Text$ = "\t" then Text$ = " "
Win_Error(Text$ + "Window >> " + Str$(hWnd), 2)
if Text$ ! "\0" and Text$ ! "\n" then Word$ = Word$ + Text$
X = X + 1
endwhile
if Right$(Word$, 2) = "\0"
Word$ = Left$(WOrd$, Len(Word$)-2)
endif
endif
endfunction Word$
Function Win_AddToString(hWnd, Add$)
For X=1 to 1000
if WinText$(hWnd, X) = "\0" then Term = X : Exit
next x
WinText$(hWnd, Term) = Add$
WinText$(hWnd, Term+1) = "\0"
endfunction
Function Win_Error(ErrStr$, Intense)
DLL = 0
for X=255 to 1 step -1
if DLL Exist(X) = 0 then DLL = X
next x
if DLL > 0
select Intense
case 2
Load Dll "user32.dll",DLL
Dbc = Call dll(DLL,"GetActiveWindow")
Call dll DLL,"MessageBoxA",Dbc,ErrStr$,"Error In Win Functions", 0
Delete Dll DLL
endcase
case 3
Load Dll "user32.dll",DLL
Dbc = Call dll(DLL,"GetActiveWindow")
Call dll DLL,"MessageBoxA",Dbc,ErrStr$,"Error In Win Functions", 0
Delete Dll DLL
end
endcase
endselect
else
EXITFUNCTION -1
endif
endfunction
Function Win_SendMessage(hWnd, Msg, wParam, lParam)
For X=1 to 500
if WinMsg(X, 0) = 0 then mPtr = X : Exit
next x
if mPtr > 0
WinMsg(mPtr, 0) = 1
WinMsg(mPtr, 1) = hWnd
WinMsg(mPtr, 2) = Msg
WinMsg(mPtr, 3) = wParam
WinMsg(mPtr, 4) = lParam
else
Win_ClrMsg()
Res = Win_SendMessage(hWnd, Msg, wParam, lParam)
exitfunction Res
endif
endfunction Win_SortWindowProcedure(hWnd, Msg, wParam, lParam)
Function Win_GetMessage(hWnd)
For Msg = 500 to 1 step -1
if hWnd > 0
if WinMsg(Msg, 1) = hWnd and WinMsg(Msg, 0) = 1
Msg(1) = hWnd
Msg(2) = WinMsg(Msg, 2)
Msg(3) = WinMsg(Msg, 3)
Msg(4) = WinMsg(Msg, 4)
exit
endif
else
if WinMsg(Msg, 0) = 1
Msg(1) = WinMsg(Msg, 1)
Msg(2) = WinMsg(Msg, 2)
Msg(3) = WinMsg(Msg, 3)
Msg(4) = WinMsg(Msg, 4)
exit
endif
endif
next Msg
endfunction
Function Win_ClrMsg()
For X=1 to 500
WinMsg(X, 0) = 0
next x
endfunction
Function Win_Dot(dc, X, Y, Color)
Bmp = HDC(dc, 2) : hWnd = HDC(dc, 1)
if WinData(hWnd, 3) = 1 then X=X+4 : Y = Y +24
if WinData(hWnd, 3) = 2 then X=X+1 : Y = Y +1
if WinData(hWnd, 8) = 1 then Y = Y + 20
Set Current bitmap Bmp
ink Color,0
dot X,Y
endfunction
Function Win_OutBox(dc, X, Y, X2, Y2, color)
Bmp = HDC(dc, 2) : hWnd = HDC(dc, 1)
if WinData(hWnd, 3) = 1 then X=X+4 : Y = Y +24 : X2=X2-4 : Y2 = Y2 - 24
if WinData(hWnd, 3) = 2 then X=X+1 : Y = Y +1 : X2 = X2 - 1 : Y2 = Y2 - 1
Set Current bitmap Bmp
ink Color,0
Line X,Y,X2,Y
Line X,Y,X,Y2
Line X2,Y,X2,Y2
Line X,Y2,X2,Y2
endfunction
Function Win_DotBox(dc, X, Y, Width, Height, Color)
Bmp = HDC(dc, 2) : hWnd = HDC(dc, 1)
if WinData(hWnd, 3) = 1 then X=X+4 : Y = Y +24
if WinData(hWnd, 3) = 2 then X=X+1 : Y = Y +1
if WinData(hWnd, 8) = 1 then Y = Y + 20
Set Current bitmap Bmp
ink Color,0
For RX = X to X+Width step 2
dot rx,y
dot rx,y+height
next rx
for ry = y to y+height step 2
Dot x,RY
Dot X+Width,RY
next ry
endfunction
Function Win_Box(dc, X, Y, X2, Y2, Color)
Bmp = HDC(dc, 2) : hWnd = HDC(dc, 1)
if WinData(hWnd, 3) = 1 then X=X+4 : Y = Y +24 : X2=X2-4 : Y2 = Y2 - 24
if WinData(hWnd, 3) = 2 then X=X+1 : Y = Y +1 : X2 = X2 - 1 : Y2 = Y2 - 1
Set Current bitmap Bmp
ink Color,0
Box X,Y,X2,Y2
endfunction
Function Win_Line(dc, X, Y, X2, Y2, Color)
Bmp = HDC(dc, 2) : hWnd = HDC(dc, 1)
if WinData(hWnd, 3) = 1 then X=X+4 : Y = Y +24 : X2=X2-4 : Y2 = Y2 - 24
if WinData(hWnd, 3) = 2 then X=X+1 : Y = Y +1 : X2 = X2 - 1 : Y2 = Y2 - 1
Set Current bitmap bmp
Ink Color,0
Line X,Y,X2,Y2
endfunction
Function Win_Text(dc, X, Y, Text$, Color)
Bmp = HDC(dc, 2) : hWnd = HDC(dc, 1)
if WinData(hWnd, 3) = 1 then X=X+4 : Y = Y +24 : X2=X2-4 : Y2 = Y2 - 24
if WinData(hWnd, 3) = 2 then X=X+1 : Y = Y +1 : X2 = X2 - 1 : Y2 = Y2 - 1
Set Current bitmap bmp
Win_SpliceText(hWnd, Text$, X, Y, Color)
endfunction
Function Win_GetWindowRect(hWnd)
Rect(1) = WinData(hWnd, 4)
Rect(2) = WinData(hWnd, 5)
Rect(3) = WinData(hWnd, 6) + winData(hWnd, 4)
Rect(4) = WinData(hWnd, 7) + WinData(hWnd, 5)
endfunction
Function Win_FindImage()
For X=65535 to 1 step -1
if Image exist(X) = 0 then exitfunction X
next x
endfunction -1
Function Win_BeginPaint(hWnd)
dc = 0 : bmp = 0
For X=1 to 1000
if HDC(X, 0) = 0 then dc = X : Exit
next x
if DC > 0
For X=31 to 1 step -1
if Bitmap exist(X) = 0 then Bmp = X
next x
if bmp > 0
HDC(dc, 0) = 1
HDC(dc, 1) = hWnd
HDC(dc, 2) = bmp
Create Bitmap bmp,WinData(hWnd, 6)+2,WinData(hWnd, 7)+2
Class = WinData(hWnd, 1)
ink 0,0
Box 0,0,Bitmap Width(bmp)-1,Bitmap Height(bmp)-1
ink WinClass(Class, 2),0
Box 0,0,WinData(hWnd, 6),WinData(hWnd, 7)
exitfunction 1
else
Win_Error("No Bitmaps left to Paint window", 2)
exitfunction -1
endif
else
Win_Error("No DC Handles Left", 2)
Exitfunction -1
endif
endfunction -2
Function Win_GetTopWindow()
endfunction WinSysData(4)
Function Win_SetTopWindow(hWnd)
Hold = Win_GetTopWindow()
WinSysData(4) = hWnd
Win_UpdateWindow(Hold)
Win_UpdateWindow(Win_GetTopWindow())
Win_Sys_UpdateBitmap(0)
endfunction
Function Win_GetFocus()
endfunction WinSysData(3)
Function Win_EndPaint(dc)
hWnd = HDC(dc, 1) : bmp = HDC(dc, 2) : Flag = WinData(hWnd, 3)
Class = WinData(hWnd, 1)
Width = Bitmap Width(Bmp)-1 : Height = Bitmap Height(Bmp)-1
Set Current bitmap bmp
if Flag = 1
if Win_IsActive(hWnd) = 1 or Win_GetTopWindow() = hWnd
Win_DG(0,0,Width,21,RGB(10,36,106),RGB(166,202,240))
endif
if Win_IsActive(hWnd) = 0 or Win_GetTopWindow() ! hWnd
Win_DG(0,0,Width,21,RGB(72,72,72),RGB(162,162,162) )
endif
ink rgb(192,192,192),0
line 0,22,Width,22
line 0,0,Width,0
Line 0,0,0,Height
ink rgb(255,255,255),0
Line 1,1,Width-1,1
Line 1,1,1,Height-1
ink rgb(192,192,192),0
line 2,2,Width-2,2
Line Width-2,2,Width-2,Height-2
line Width-2,Height-2,2,Height-2
Line 2,Height-2,2,2
line 3,3,Width-3,3
Line Width-3,3,Width-3,Height-3
line Width-3,Height-3,3,Height-3
Line 3,Height-3,3,3
ink rgb(64,64,64),0
Line Width,0,Width,height
Line 0,height,Width,height
ink rgb(128,128,128),0
Line Width-1,1,Width-1,Height-1
Line 1,height-1,Width-1,Height-1
if WInData(hWnd, 18) = 1 or Win_GetTopWindow() ! hWnd
ink rgb(255,255,255),0
else
Ink rgb(192,192,192),0
endif
Set Text to Bold
Win_SpliceText(hWnd, "", 22, 6, RGB(255,255,255))
if WInClass(Class, 1)>0
Paste image WinClass(Class, 1),2+4,2+4,1
endif
if WinData(hWnd, 3) = WS_OVERLAPPED(1)
if WinData(hWnd, 14) = 0
Restore X0:
else
Restore X1:
endif
For Y = 6 to 19
For X = Width-22 to Width-7
Read Color
ink Color,0
Dot X,Y
next X
next Y
endif
Set Text to Normal
endif
if Flag = 2
ink rgb(0,0,0),0
Line 0,0,Width+1,0
Line 0,0,0,Height+1
Line Width+1,0,Width+1,Height+1
Line 0,Height+1,Width+1,Height+1
endif
if WInData(hWnd, 8) > 0
if Flag = 1 then X = 4 : Y = 23 : Width = Width - 4
if Flag = 2 then X = 1 : Y = 1
if Flag = 0 then X = 0 : Y = 0
ink rgb(192,192,192),0
box X,Y,Width,Y+19
For M=1 to 100
if WinMenu(hWnd, M, 0) > 0
ink rgb(0,0,0),0
Text 3+((m-1)*100), 3, WinMenuText$(hWnd, X, 0)
if Windata(hWnd, 13) = M
ink rgb(192,192,192),0
box X,Y+21+((M-1)*20),Width,Y+21+(M*20)
endif
endif
next m
endif
For X=1 to 5000
if WinData(WinChild(hWnd, X), 0)=1 and WinData(WinChild(hWnd, X), 3) = WS_CHILD(1)
Paste Image WinData(WinChild(hWnd, X), 10),WinData(WinChild(hWnd, X), 4),WinData(WinChild(hWnd, X), 5),1
endif
next x
hdc(dc,0) = 0
Get Image WinData(hWnd, 10),0,0,WinData(hWnd, 6)+2,WinData(hWnd, 7)+2
Delete bitmap bmp
X0:
Data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,4210752
Data 16777215,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,8421504,4210752
Data 16777215,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,8421504,4210752
Data 16777215,13947080,13947080,13947080,0,0,13947080,13947080,13947080,13947080,0,0,13947080,13947080,8421504,4210752
Data 16777215,13947080,13947080,13947080,13947080,0,0,13947080,13947080,0,0,13947080,13947080,13947080,8421504,4210752
Data 16777215,13947080,13947080,13947080,13947080,13947080,0,0,0,0,13947080,13947080,13947080,13947080,8421504,4210752
Data 16777215,13947080,13947080,13947080,13947080,13947080,13947080,0,0,13947080,13947080,13947080,13947080,13947080,8421504,4210752
Data 16777215,13947080,13947080,13947080,13947080,13947080,0,0,0,0,13947080,13947080,13947080,13947080,8421504,4210752
Data 16777215,13947080,13947080,13947080,13947080,0,0,13947080,13947080,0,0,13947080,13947080,13947080,8421504,4210752
Data 16777215,13947080,13947080,13947080,0,0,13947080,13947080,13947080,13947080,0,0,13947080,13947080,8421504,4210752
Data 16777215,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,8421504,4210752
Data 16777215,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,8421504,4210752
Data 16777215,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,4210752
Data 4210752,4210752,4210752,4210752,4210752,4210752,4210752,4210752,4210752,4210752,4210752,4210752,4210752,4210752,4210752,4210752
X1:
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,16777215
Data 0,8421504,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,16777215
Data 0,8421504,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,16777215
Data 0,8421504,13947080,13947080,13947080,0,0,13947080,13947080,13947080,13947080,0,0,13947080,13947080,16777215
Data 0,8421504,13947080,13947080,13947080,13947080,0,0,13947080,13947080,0,0,13947080,13947080,13947080,16777215
Data 0,8421504,13947080,13947080,13947080,13947080,13947080,0,0,0,0,13947080,13947080,13947080,13947080,16777215
Data 0,8421504,13947080,13947080,13947080,13947080,13947080,13947080,0,0,13947080,13947080,13947080,13947080,13947080,16777215
Data 0,8421504,13947080,13947080,13947080,13947080,13947080,0,0,0,0,13947080,13947080,13947080,13947080,16777215
Data 0,8421504,13947080,13947080,13947080,13947080,0,0,13947080,13947080,0,0,13947080,13947080,13947080,16777215
Data 0,8421504,13947080,13947080,13947080,0,0,13947080,13947080,13947080,13947080,0,0,13947080,13947080,16777215
Data 0,8421504,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,16777215
Data 0,8421504,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,13947080,16777215
Data 0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
endfunction
Function Win_Drawgradient(dc, X, Y, X2, Y2, Color1, Color2)
Bmp = HDC(dc, 2) : hWnd = HDC(dc, 1)
if WinData(hWnd, 3) = 1 then X=X+4 : Y = Y +24 : X2=X2-4 : Y2 = Y2 - 24
if WinData(hWnd, 3) = 2 then X=X+1 : Y = Y +1 : X2 = X2 - 1 : Y2 = Y2 - 1
Set Current bitmap bmp
Win_DG(X, Y, X2, Y2, Color1, Color2)
endfunction
Function Win_DG(X,Y,x2,y2,Color1,Color2)
Dim Color(2, 3)
Color(1, 0) = Color1
Color(1, 1) = RGBR(Color1)
Color(1, 2) = RGBG(Color1)
Color(1, 3) = RGBB(Color1)
Color(2, 0) = Color2
Color(2, 1) = RGBR(Color2)
Color(2, 2) = RGBG(Color2)
Color(2, 3) = RGBB(Color2)
if (X2-X) > (Y2-Y)
From = X : ToPos = X2
WH# = X2 - X
else
From = Y : ToPos = Y2
WH# = Y2-Y
endif
For RX=From to topos
P# = RX / WH#
cr = Color(1, 1) + (Color(2, 1) - Color(1, 1)) * P#
cg = Color(1, 2) + (Color(2, 2) - Color(1, 2)) * P#
cb = Color(1, 3) + (Color(2, 3) - Color(1, 3)) * P#
ink rgb(cr,cg,cb),0
if (X2-X) > (Y2-Y)
line RX,y,RX,Y2
else
Line X,RX,X2,RX
endif
next x
endfunction
Function Win_GetWindowTextHeight(hWnd)
Char$ = "" : X = -1 : Height = 20
While Char$ ! "\0"
X = X + 1
Char$ = WinText$(hWnd, X)
if Char$ = "\n"
Height = Height + 20
endif
endwhile
endfunction Height
Function Win_SubWinChar(hWnd)
X = -1 : Char$ = ""
While Char$ ! "\0"
X = X + 1
Char$ = WinText$(hWnd, X)
endwhile
if X > 1
WinText$(hWnd, X) = "" : WinText$(hWnd, X-1) = "\0"
endif
endfunction
Function Win_GetWindowTextLength(hWnd)
X = -1 : Char$ = "" : Width = 0 : L = 0
Dim Width(1000)
While Char$ ! "\0"
X = X + 1
Char$ = WinText$(hWnd, X)
if Char$ = "\n" then L = L + 1
if Char$ ! "\0" and Char$ ! "\n" and Char$ ! "\t" then Width(L) = Width(L) + Text Width(Char$)
endwhile
Width = Width(0)
For Z = 1 to X
if Width(Z) > Width
Width = Width(Z)
endif
next z
endfunction Width
Function Win_SpliceText(hWnd, Text$, tx, ty, Color)
L = 0 : X = 0 : LineWord$ = ""
Char$ = ""
if right$(Text$, 2) ! "\0" and Text$ > ""
Text$ = Text$ + "\0"
endif
ink Color,0
While Char$ ! "\0"
if Text$ = ""
Char$ = WinText$(hWnd, X)
else
Char$ = Mid$(Text$, X)
if Char$ = "\"
if Mid$(Text$, X+1) = "n" or Mid$(Text$, X+1) = "t" or Mid$(Text$, X+1) = "0"
Char$ = Char$ + Mid$(Text$, X+1)
L$ = Left$(Text$, X) : R$ = Right$(Text$, Len(Text$)-(X+1)) : Text$ = L$ + R$
endif
endif
endif
if Char$ = "\n" then L = L + 1 : LineWord$ = ""
if Char$ = "\t" then char$ = " "
if Char$ = "\\" then Char$ = "\"
If Char$ ! "\n" and Char$ ! "\0"
text tX+Text Width(LineWord$), tY + (L*20), Char$
LineWord$ = LineWord$ + Char$
endif
if Char$ = "\0"
if WinSysData(3) = hWnd and Windata(hwnd, 15) > 0
if WinData(hWnd, 15) < 10000
Text Tx+Text Width(LineWord$), ty + (L*20), chr$(WinData(hWnd, 14))
else
Paste image WinData(hWnd, 15)-10000,Tx+Text Width(LineWord$), Ty + (L*20), 1
endif
endif
endif
X = X + 1
endwhile
endfunction
Function Win_SortWindowProcedure(hWnd, Msg, wParam, lParam)
Class = Windata(hWnd, 1)
select Class
case Default
Result = Win_Sys_WindowProcedure(hWnd, Msg, wParam, lParam)
endcase
endselect
endfunction Result
Function Win_Sys_WindowProcedure(hWnd, Msg, wparam, lParam)
Class = WinData(hWnd, 1)
Select Class
case 101
Result = Win_Sys_ButtonProc(hWnd, Msg, wParam, lParam)
endcase
case 102
Result = Win_Sys_EditBoxProc(hWnd, Msg, wParam, lParam)
endcase
case 103
Result = Win_Sys_CheckBoxProc(hwnd, msg, wParam, lParam)
endcase
Case 104
Result = Win_Sys_ProgressBarProc(hWnd, Msg, wParam, lparam)
endcase
case 105
Result = Win_Sys_ListBoxProc(hWnd, Msg, wParam, lParam)
endcase
case 106
Result = Win_sys_OverlappedProc(hWnd, Msg, wParam, lParam)
endcase
case 107
Result = Win_Sys_SliderProc(hWnd, Msg, wParam, lParam)
endcase
case 108
Result = Win_Sys_ComboBox_Proc(hWnd, Msg, wParam, lParam)
endcase
endselect
endfunction Result
Function Win_sys_OverlappedProc(hWnd, Msg, wParam, lParam)
select Msg
case WM_PAINT(1)
dc = Win_BeginPaint(hWnd)
Win_EndPaint(dc)
endcase
case default
exitfunction Win_DefWindowProcedure(hWnd, Msg, wParam, lParam)
endcase
endselect
endfunction
Function Win_Sys_ButtonProc(hWnd, Msg, wParam, lParam)
Select Msg
case WM_LBUTTONDOWN(1)
if WinData(hWnd, 26) = 0
Windata(hWnd, 26) = 1
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
if WinData(hWnd, 9) > 0
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
endif
Win_Sys_UpdateBitmap(0)
endif
endcase
case WM_LBUTTONUP(1)
if WinData(hWnd, 26) = 1
WinData(hWnd, 26) = 0
WIN_SENDMESSAGE(hWnd, WM_PAINT(1), 0, 0)
if Windata(hWnd, 9) > 0
Win_SendMessage(WInData(hWnd, 9), WM_PAINT(1), 0, 0)
endif
Win_Sys_UpdateBitmap(0)
endif
endcase
Case WM_PAINT(1)
Win_GetWindowRect(hWnd)
if WInSysData(3) = hWnd : WinData(hWnd, 4) = WinData(hWnd, 4) - 1 : WinData(hWnd, 5) = WinData(hWnd, 5) - 1 : WinData(hWnd, 6) = WinData(hWnd, 6) + 1 : Windata(hWnd, 7) = WinData(hWnd, 7) + 1 : endif
dc = Win_BeginPaint(hWnd)
Rect(1) = 0 : Rect(2) = 0 : Rect(3) = WinData(hWnd, 6)+1 : Rect(4) = WinData(hWnd, 7)+1
if WinSysData(3) = hWnd then Rect(1) = 1 : Rect(2) = 1 : Rect(3) = WinData(hWnd, 6) : Rect(4) = WinData(hWnd, 7)
if WinData(hWnd, 26) = 0
Win_Box(dc, Rect(1),Rect(2),Rect(3),Rect(4), RGB(192,192,192))
Win_Line(dc, Rect(1), Rect(2), Rect(1), Rect(4), RGB(255,255,255))
Win_Line(dc, Rect(1), Rect(2), Rect(3), Rect(2), RGB(255,255,255))
Win_Line(dc, Rect(3), Rect(2), Rect(3), Rect(4), RGB(64,64,64))
Win_Line(dc, Rect(1), Rect(4), Rect(3), Rect(4), RGB(64,64,64))
Win_Line(dc, Rect(1)+1, Rect(4)-1, Rect(3)-1, Rect(4)-1, RGB(128,128,128))
Win_Line(dc, Rect(3)-1, Rect(2)+1,Rect(3)-1,Rect(4)-1, Rgb(128,128,128))
Half = Rect(3)/2
TX = Half-(Win_GetWindowTextLength(hWnd)/2)
TY = ((Rect(4)-Rect(2))/2)-(Win_GetWindowTextHeight(hWnd)/2)
Win_Text(dc, TX, TY+3, "", RGB(12,12,12))
if WinSysData(3) = hWnd
Win_DotBox(dc,3,3,WinData(hWnd, 6)-5,Windata(hWnd, 7)-5, RGB(64,64,64))
endif
else
Win_Box(dc, Rect(1),Rect(2),Rect(3),Rect(4), RGB(192,192,192))
Win_Line(DC, Rect(3), Rect(2), Rect(3), Rect(4), RGB(255,255,255))
Win_Line(DC, Rect(1), Rect(4), Rect(3), Rect(4), RGB(255,255,255))
Win_Line(dc, Rect(1), rect(2), Rect(3), Rect(2), RGB(64,64,64))
Win_Line(Dc, Rect(1), Rect(2), Rect(1), Rect(4), RGB(64,64,64))
Win_Line(DC, Rect(1)+1, Rect(2)+1, Rect(3)-1, Rect(2)+1, RGB(128,128,128))
Win_Line(DC, Rect(1)+1, Rect(2)+1, Rect(1)+1, Rect(4)-1, RGB(128,128,128))
Half = Rect(3) / 2
TX = Half-(Win_GetWindowTextLength(hWnd)/2)
TY = ((Rect(4)-Rect(2))/2)-(Win_GetWindowTextHeight(hWnd)/2)
Win_Text(dc, TX+1, TY+4, "", RGB(12,12,12))
if WinSysData(3) = hWnd
width = WinData(hWnd, 6) + 2 : Height = WinData(hWnd, 7) + 2
Win_DotBox(dc,3,3,Width-7,Height-7, RGB(64,64,64))
endif
endif
if WinSysData(3) = hWnd
Win_OutBox(dc, 0, 0, WinData(hWnd, 6)+1, WinData(hWnd, 7)+1, RGB(12, 12, 12))
endif
Win_EndPaint(Dc)
if WinSysData(3) = hWnd
WInData(hWnd, 6) = WinData(hWnd, 6)-1 : WINData(hWnd, 7) = WinData(hWnd, 7) - 1
WinData(hWnd, 4) = WinData(hWnd, 4) + 1 : WinData(hWnd, 5) = WinData(hWnd, 5) + 1
endif
endcase
case BM_SETSTATE(1)
Hold = WinData(hWnd, 26)
WinData(hWnd, 26) = wParam
exitfunction Hold
endcase
Case BM_GETSTATE(1)
exitfunction WinData(hWnd, 26)
endcase
case default
Exitfunction Win_DefWindowProcedure(hWnd, Msg, wParam, lParam)
endcase
endselect
endfunction 0
Function Win_DefWindowProcedure(hWnd, Msg, wParam, lParam)
select Msg
case WM_MOVE(1)
WinData(hWnd, 4) = wParam
WinData(hWnd, 5) = lParam
Win_Sys_UpdateBitmap(0)
endcase
case WM_DESTROY(1)
Parent = 0
WinData(0,1) = WinData(0,1) - 1
For X=1 to 100
if WinData(WinChild(hWnd, X), 0) > 0
Win_SendMessage(WinChild(hWnd, X), WM_DESTROY(1), 1, 0)
endif
next x
Delete image WinData(hWnd, 10)
if WinData(hWnd, 9) > 0
Parent = WinData(hWnd, 9)
For X=1 to 100
if WinChild(Parent, X) = hWnd
WinChild(Parent, X) = 0
endif
next x
endif
For X=0 to 50
WinData(hWnd, X) = 0
next x
if wParam = 0
if Parent > 0 then Win_SendMessage(Parent, WM_PAINT(1), 0, 0)
Win_Sys_UpdateBitmap(0)
endif
endcase
case WM_CREATECURSOR(1)
if lParam = 1 then wParam = wParam + 10000
WinData(hWnd, 15) = wParam
endcase
endselect
endfunction
Function Win_Sys_EditBoxProc(hWnd, Msg, wParam, lParam)
select msg
case WM_CREATE(1)
Win_SendMessage(hWnd, WM_CREATECURSOR(1), asc("|"), 0)
endcase
Case WM_LBUTTONDOWN(1)
if WinSysData(3) = hWnd
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
Win_Sys_UpdateBitmap(0)
else
WinSysData(3) = hWnd
Win_SendMessage(hWnd, WM_LBUTTONDOWN(1), 0, 0)
endif
endcase
case WM_KEYDOWN(1)
if WinSysData(3) = hWnd
if wParam = 8 then Win_SubWinChar(hWnd)
if wParam = 13 and WinData(hWnd, 26) = 1 : Char$ = "\n" : else : Char$ = "" : Endif
if wParam = 9 : Char$ = "\t" : endif
if wParam ! 13 and wParam ! 9 then char$ = chr$(wParam)
if wParam ! 8 and Controlkey() = 0
if Windata(hWnd, 26) = 1
if Win_GetWindowTextLength(hWnd) > WinData(hWnd, 6)
Win_AddToString(hWnd, "\n")
endif
endif
Win_AddToString(hWnd, Char$)
endif
WIN_SendMessage(hWnd, WM_PAINT(1), 0, 0)
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
Win_Sys_UpdateBitmap(0)
endif
endcase
case WM_PAINT(1)
dc = Win_BeginPaint(hWnd)
X = 0 : Y = 0 : Width = WinData(hWnd, 6)+1 : Height = Windata(hWnd, 7)+2
Win_Text(dc, 3, 3, "", RGB(12,12,12))
Win_Line(dc,X, Y, Width, Y, RGB(64,64,64))
Win_Line(dc,X, Y, X, Height, RGB(64,64,64))
Win_Line(dc,X+1,Y+1,Width-1,Y+1, RGB(128,128,128))
Win_Line(dc,X+1,Y+1,X+1,Height-1, RGB(128,128,128))
Win_Line(dc,Width, Y, Width, Height, RGB(64,64,64))
Win_Line(dc,X, Height, Width, Height, RGB(64,64,64))
Win_Line(dc,Width-1,Y+1,Width-1,Height-1, RGB(128,128,128))
Win_Line(dc,X+1,Height-1, Width-1,Height-1, RGB(128,128,128))
Win_EndPaint(dc)
endcase
case EM_SETSCROLL(1)
WinData(hWnd, 26) = wParam
endcase
case default
Exitfunction Win_DefWindowProcedure(hWnd, Msg, wParam, lParam)
endcase
endselect
endfunction
Function Display_Window_Proc(hWnd, Msg, wParam, lParam)
Select Msg
case WM_PAINT(1)
dc = Win_BeginPaint(hWnd)
WinText$ = Win_ExtractString(hWnd)
Win_Text(dc, WinData(hWnd, 6)+2-Text Width(WinText$), 0, WinText$, RGB(12,12,12))
Win_EndPaint(dc)
endcase
case Default
Exitfunction Win_DefWindowPRocedure(hWnd, Msg, wParam, lParam)
endcase
endselect
endfunction 0
Function Win_Sys_CheckBoxProc(hWnd, Msg, wParam, lParam)
Select Msg
case WM_CREATE(1)
WinData(hWnd, 26) = -1
endcase
case WM_PAINT(1)
dc = Win_BeginPaint(hWnd)
if WinData(hWnd, 26) = -1
Restore Check0:
endif
if WinData(hWnd, 26) = 1
Restore Check1:
endif
if WinData(hWnd, 26) = 0
Restore Check3:
endif
Win_Box(dc,1,1,11,11,RGB(255,255,255))
For Y=1 to 13
For X = 1 to 13
Read Color
if Color = 0 : COlor = RGB(12,12,12) : ENDIF
if color = 1 : color = rgb(128,128,128) : endif
if color = 2 : color = rgb(64,64,64) : endif
if color = 3 : color = rgb(255,255,255) : endif
if color = 4 : color = rgb(212,208,200) : Endif
if color = 5 : color = rgb(255,255,255) : Endif
Win_dot(dc,X,Y,color)
next Y
next X
if WinSysData(3) = hWnd
Win_DotBox(dc, 0, 0, 13,13, RGB(64,64,64))
endif
Win_Text(dc, 15, -1, "", RGB(12,12,12))
Win_EndPaint(DC)
endcase
case WM_LBUTTONDOWN(1)
if WinData(hWnd, 26) = 0 then exitfunction 0
if WinData(hWnd, 26) = -1 or WinData(hWnd, 26) = 1
WinData(hWnd, 27) = WinData(hWnd, 26)
WinData(hWnd, 26) = 0
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
Win_Sys_UpdateBitmap(0)
endif
endcase
case WM_LBUTTONUP(1)
if WinData(hWnd, 26) = 0
WinData(hWnd, 26) = WinData(hWnd, 27) * -1
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
Win_Sys_UpdateBitmap(0)
endif
endcase
case default
Exitfunction Win_DefWindowProcedure(hWnd, Msg, wParam, lParam)
endcase
endselect
Check0:
Data 1,1,1,1,1,1,1,1,1,1,1,1,5
Data 1,2,2,2,2,2,2,2,2,2,2,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,4,4,4,4,4,4,4,4,4,4,4,5
Data 5,5,5,5,5,5,5,5,5,5,5,5,5
Check1:
Data 1,1,1,1,1,1,1,1,1,1,1,1,5
Data 1,2,2,2,2,2,2,2,2,2,2,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,2,3,3,3,3,3,3,3,0,3,4,5
Data 1,2,3,3,3,3,3,3,0,0,3,4,5
Data 1,2,3,0,3,3,3,0,0,0,3,4,5
Data 1,2,3,0,0,3,0,0,0,3,3,4,5
Data 1,2,3,0,0,0,0,0,3,3,3,4,5
Data 1,2,3,3,0,0,0,3,3,3,3,4,5
Data 1,2,3,3,3,0,3,3,3,3,3,4,5
Data 1,2,3,3,3,3,3,3,3,3,3,4,5
Data 1,4,4,4,4,4,4,4,4,4,4,4,5
Data 5,5,5,5,5,5,5,5,5,5,5,5,5
Check3:
Data 1,1,1,1,1,1,1,1,1,1,1,1,5
Data 1,2,2,2,2,2,2,2,2,2,2,4,5
Data 1,2,4,4,4,4,4,4,4,4,4,4,5
Data 1,2,4,4,4,4,4,4,4,4,4,4,5
Data 1,2,4,4,4,4,4,4,4,4,4,4,5
Data 1,2,4,4,4,4,4,4,4,4,4,4,5
Data 1,2,4,4,4,4,4,4,4,4,4,4,5
Data 1,2,4,4,4,4,4,4,4,4,4,4,5
Data 1,2,4,4,4,4,4,4,4,4,4,4,5
Data 1,2,4,4,4,4,4,4,4,4,4,4,5
Data 1,2,4,4,4,4,4,4,4,4,4,4,5
Data 1,4,4,4,4,4,4,4,4,4,4,4,5
Data 5,5,5,5,5,5,5,5,5,5,5,5,5
endfunction
Function Win_Sys_DropBoxProc(hWnd, Msg, wParam, lParam)
Width = WinData(hWnd, 6) + 2 : Height = WinData(hWnd, 7) + 2
Select Msg
case WM_PAINT(1)
dc = Win_BeginPaint(hWnd)
if WinData(hWnd, 26) = 0
SelectedItem = WinData(hWnd, 27)
Item$ = WinText$(hWnd, 1)
Win_Line(dc, 0, 0, Width, 0, RGB(128,128,128))
Win_Line(DC, 0, 0, 0, Height, RGB(128,128,128))
Win_Line(DC, 1, 1, Width-1, 1, RGB(64,64,64))
Win_Line(DC, 1, 1, 1, Height-1, RGB(64,64,64))
Win_Line(DC, 0, Height, Width, Height, RGB(255,255,255))
Win_Line(DC, Width, 0, Width, Height, RGB(255,255,255))
Win_Line(DC, 1, Height-1, Width-1, Height-1, RGB(192,192,192))
Win_Line(DC, Width-1, 1, Width-1,Height-1, RGB(192,192,192))
Win_Text(dc, 3, 0, Item$, RGB(12, 12, 12))
endif
Win_endPaint(dc)
endcase
case WM_LBUTTONDOWN(1)
While Mouseclick() : sync : endwhile
State = Win_SendMessage(hWnd, DBM_GETSTATE(1), 0, 0)
if State = 1
Win_SendMessage(hWnd, DBM_SETSTATE(1), 1, 0)
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
WIn_Sys_UpdateBitmap(0)
exitfunction 0
endif
if State = 0
Win_SendMessage(hWnd, DBM_SETSTATE(1), 0, 0)
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
WIn_Sys_UpdateBitmap(0)
exitfunction 0
endif
endcase
Case DBM_SETSTATE(1)
Hold = WinData(hWnd, 26)
WinData(hWnd, 26) = wParam
Exitfunction Hold
endcase
case DBM_GETSTATE(1)
Exitfunction WinData(hWnd, 26)
endcase
case default
Exitfunction Win_DefWindowProcedure(hWnd, Msg, wParam, lParam)
endcase
endselect
endfunction
Function Win_Sys_ListBoxProc(hWnd, Msg, wParam, lParam)
X = WinData(hWnd, 4) : Y = WinData(hWnd, 5)
if Win_IsWindow(WinData(hWnd, 9))
X = X + WinData(WinData(hWnd, 9), 4) : Y = Y + WinData(Windata(hWnd, 9), 5)
endif
Item = 0
Select msg
case WM_LBUTTONDOWN(1)
For CI = 1 to WinData(hWnd, 26)
if Win_MouseInside(X, Y + (CI-1) * 16, WinData(hWnd, 6), 16) = 1
Item = CI : Exit
break Str$(CI)
endif
next Item
if WinData(hWnd, 27) ! Item and Item > 0
Windata(hWnd, 27) = Item
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
if Windata(hWnd, 9) > 0 then Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
Win_Sys_UpdateBitmap(0)
endif
endcase
case WM_PAINT(1)
dc = Win_BeginPaint(hWnd)
Width = WinData(hWnd, 6) + 1 : Height = WinData(hWnd, 7) + 1
Win_OutBox(dc, 0, 0, Width, Height, RGB(12,12,12))
Win_OutBox(dc, 1, 1, Width-1, Height-1, RGB(128,128,128)) : TextColor = RGB(12, 12, 12)
Win_Line(dc, Width, 0, Width, height, RGB(255,255,255))
Win_Line(dc, 0, Height, Width, height, Rgb(255,255,255))
Win_Line(dc, Width-1, 1, Width-1,height-1, RGB(192,192,192))
Win_Line(dc, 1, Height-1,Width-1,Height-1, RGB(192,192,192))
For X=1 to WinData(hWnd, 26)
if WinData(hWnd, 27) = X
if WinSysData(3) = hWnd
Win_Box(dc, 2, (X-1)*16 + 2, WinData(hWnd, 6)-2, (X-1)*16+16, RGB(10,36,106))
TextColor = RGB(255,255,255)
DotColor = RGB(0,0,0)
else
DotColor = RGB(12,12,12)
endif
Win_DotBox(dc, 2, 2 + ((X-1)*16), Width - 4,-1 + ((X-1)*16) - ((X-2)*16), DotColor)
else
TextColor = RGB(12,12,12)
endif
Win_Text(dc, 4, 2 + ((X-1)*16), WinText$(hWnd, X), TextColor)
next x
Win_EndPaint(dc)
endcase
case default
Exitfunction Win_DefWindowProcedure(hWnd, msg, wParam, lParam)
endcase
endselect
endfunction
Function Win_AddListBoxItem(hWnd, Text$)
WinData(hWnd, 26) = WinData(hWnd, 26) + 1
Item = WinData(hWnd, 26) : NeededHeight = (Item * 16) + 4
if WinData(hWnd, 7) < NeededHeight
WinData(hWnd, 7) = NeededHeight
endif
WinText$(hWnd, Item) = Text$
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
if Win_IsWindow(WinData(hWnd, 9)) = 1
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
endif
Win_Sys_UpdateBitmap(0)
endfunction
Function Win_Sys_ProgressBarProc(hWnd, Msg, wParam, lParam)
X = 0; Y = 0; Width = WinData(hWnd, 6); Height = WinData(hWnd, 7);
select Msg
case WM_PAINT(1)
dc = Win_BeginPaint(hWnd)
Win_Line(dc, X, Y, Width, Y, RGB(128,128,128))
Win_Line(dc, X, Y, X, Height, RGB(128,128,128))
Win_Line(dc, Width, Y, Width, height, RGB(255,255,255))
Win_Line(dc, X, Height, Width, Height, RGB(255,255,255))
if WinData(hWnd, 26) >= 1
For Z=0 to WinData(hWnd, 26)-1
BX = 2 + Z*12 + Z*3; BY = 1;
Win_Box(dc, BX, BY, BX+12, BY+height-3, RGB(7,0,149));
next z
else
BX = 2 + Z*12 + Z*3; BY = 1;
BW# = WinData(hWnd,26)*10
Win_Box(dc, BX, BY,int( BX + BW#), BY+Height-3, RGB(7,0,149));
endif
Win_EndPaint(dc)
endcase
case PBM_SETSTEP(1)
HOLD = WinData(hWnd, 27)
WinData(hWnd, 27) = wParam
Exitfunction HOLD
endcase
case PBM_SETMAX(1)
WinData(hWnd, 29) = wParam
endcase
case PBM_STEP(1)
WinData(hWnd, 28) = WinData(hWnd, 28) + WinData(hWnd, 27)
if WinData(hWnd, 28) > WinData(hWnd, 29)
WinData(hWnd, 28) = 0
endif
Width = (WinData(hWnd, 6)/WinData(hWnd, 29))*WinData(hWnd, 28)
WinData(hWnd, 26) = Width/12
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
if WinData(hWnd, 9) > 0
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
endif
Win_Sys_UpdateBitmap(0)
exitfunction WinData(hWnd, 26)
endcase
case PBM_SETPOS(1)
HOLD = WinData(hWnd, 28)
WinData(hWnd, 28) = wParam
if WinData(hWnd, 28) > WinData(hWnd, 29)
WinData(hWnd, 28) = 0
endif
Width = (WinData(hWnd, 6)/WinData(hWnd, 29))*WinData(hWnd, 28)
WinData(hWnd, 26) = Width/12
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
if WinData(hWnd, 9) > 0
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
endif
Win_Sys_UpdateBitmap(0)
exitfunction HOLD
endcase
endselect
endfunction 0
Function CreateProgressBar(Parent, X, Y, Width, Height, StartPos, MaxPos, Step)
hWnd = Win_CreateWindow(104, "", WS_CHILD(1), X, Y, Width, height, Parent, 0)
Win_SendMessage(hWnd, PBM_SETMAX(1), MaxPos, 0)
Win_SendMessage(hWnd, PBM_SETPOS(1), StartPos, 0)
Win_SendMessage(hWnd, PBM_SETSTEP(1),Step, 0)
endfunction hWnd
Function Win_CreateSlider(Parent, X, Y, Width, Height, Max, Pos)
hWnd = Win_CreateWindow(107, "", WS_CHILD(1), X, Y, Width,Height, Parent, 0)
Win_SendMessage(hWnd, SM_SETINFO, Max, Pos)
endfunction hWnd
Function Win_Sys_SliderProc(hWnd, Msg, wParam, lParam)
Select msg
case WM_PAINT(1)
dc = Win_BeginPaint(hWnd)
Win_Box(dc,0, 0, WinData(hWnd, 6), winData(hWnd, 7), RGB(128,128,128))
Pos = WinData(hWnd, 26) : Size = WinData(hWnd, 27)
Width = WinData(hWnd, 6)
WIn_Box(dc, 0, Pos, WinData(hWnd, 6), Pos+Size, RGB(192, 192, 192))
Win_Box(dc, 0, Pos, 0, Pos+Size, RGB(255,255,255))
Win_Box(dc, 0, Pos, WinData(hWnd, 6), Pos, RGB(255,255,255))
Win_Box(dc, WinData(hWnd, 6)-1, Pos, WinData(hWnd, 6)-1, Pos+Size, RGB(12,12,12))
Win_Box(dc, 0, Pos+Size, WinData(hWnd, 6), Pos+Size, RGB(12,12,12))
Win_EndPaint(dc)
endcase
case WM_LBUTTONDOWN(1)
Pos = WinData(hWnd ,26) : X = WiNData(hWnd, 4) : Y = WinData(hWnd, 5)
WinData(hWnd, 29) = (MouseY() - Y) - WinData(hWnd, 26)
endcase
case WM_LMOUSEHOLD(1)
Pos = WinData(hWnd ,26) : X = WiNData(hWnd, 4) : Y = WinData(hWnd, 5) : Size = WinData(hWnd,27)
New = MouseY() - Y - WinData(hWnd, 29)
if New-1 <= WinData(hWnd, 7)-WiNData(hWnd, 27) and MouseY() - Y - WinData(hWnd, 29) >= 0
WinData(hWnd, 26) = MouseY() - Y - WinData(hWnd, 29)
WinData(hWnd, 28) = WinData(hwnd, 26)/WinData(hWnd, 27) + 1
Win_UpdateWindow(hWnd)
Win_UpdateWindow(WinData(hWnd, 9))
Win_Sys_UpdateBitmap(0)
endif
endcase
case WM_LBUTTONUP(1)
WinData(hWnd, 29) = 0
endcase
case SM_SETINFO
WinData(hWnd, 30) = wParam
WinData(hWnd, 28) = lParam + 1
WinData(hWnd, 27) = WinData(hWnd, 7)/wParam
WinData(hWnd, 26) = WinData(hWnd,27)*lParam
Win_UpdateWindow(hWnd)
Win_UpdateWIndow(WinData(HWnd, 9))
Win_Sys_Updatebitmap(0)
endcase
endselect
endfunction
Function Win_MessageBox(hWnd, Msg$, Title$, Style)
Win_DeActivateWindow(hWnd)
New = Win_CreateWindow(106, Title$, WS_OVERLAPPED(1), 100, 100, 250, 100, 0, 0)
OK = Win_CreateWindow(WC_BUTTON(1), "Ok", WS_CHILD(1), 20, 50, 75, 20, New, 0)
CANCEL = Win_CreateWindow(WC_BUTTON(1), "Cancel", WS_CHILD(1), 100, 50, 75, 20, New, 0)
Repeat
HDC = Win_BeginPaint(New)
Win_Text(hdc, 50, 25, Msg$, RGB(12, 12, 12))
Win_EndPaint(HDC)
Win_Sys_UpdateBitmap(0)
State = Win_SendMessage(OK, BM_GETSTATE(1), 0, 0)
if State = 1
Almost = 1
endif
if State = 0 and Almost = 1
Done = 1
Result = 1
endif
State = Win_SendMessage(CANCEL, BM_GETSTATE(1), 0, 0)
if State = 1
Almost = 2
endif
if State = 0 and Almost = 2
Done = 1
Result = 0
endif
Win_SystemUpdate()
sync
until Done = 1 or Win_IsWindow(New) = 0
if Win_IsWindow(New) = 0
Result = -1
else
Win_SendMessage(New, WM_DESTROY(1), 0, 0)
endif
Win_ActivateWindow(hWnd)
endfunction Result
Function WIn_Sys_ComboBox_Proc(hWnd, Msg, wParam, lParam)
select Msg
case WM_CREATE(1)
WinData(hWnd, 7) = 16
WinData(hWnd, 26) = -1
WinData(hWnd, 28) = 1
endcase
case WM_LBUTTONDOWN(1)
if WinData(hWnd, 26) = -1
WinData(hWnd, 27) = 1
endif
if WinData(hWnd, 26) = 1
CBX = WinData(hWnd, 4) + WinData(WinData(hWnd, 9), 4) : CBY = WinData(hWnd, 5) + WinData(WinData(hWnd, 9), 5) : SelectedItem = 0
for X=1 to WInData(hWnd, 29)
CBIX = CBX : CBIY = CBY + 2 + (X*16)
if Win_MouseInside(CBX, CBIY, WinData(hWnd, 6), 16) = 1
SelectedItem = X
exit
endif
next x
if SelectedItem > 0 and SelectedItem!WinData(hWnd, 28)
WinData(hWnd, 28) = SelectedItem
WinData(hWnd, 27) = 1
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
Win_Sys_UPdatebitmap(0)
else
WinData(hWnd, 27) = 1
endif
endif
endcase
case WM_LBUTTONUP(1)
if WinData(hWnd, 27) = 1
WinData(hWnd, 26) = WinData(hWnd, 26) * -1
if WinData(hWnd,26) = 1
WinData(hWnd, 7) = WinData(hWnd, 7) + 4 + (WinData(hWnd, 29)*16)
else
WinData(hWnd, 7) = 16
endif
WinData(hWnd, 27) = 0
Win_SendMessage(hWnd, WM_PAINT(1), 0, 0)
Win_SendMessage(WinData(hWnd, 9), WM_PAINT(1), 0, 0)
Win_Sys_UPdatebitmap(0)
endif
endcase
case WM_PAINT(1)
dc = Win_BeginPaint(hWnd)
Win_Box(dc, 0, 0, WinData(hWnd, 6), 16, RGB(255,255,255))
Win_Box(dc, 0, 0, WinData(hWnd, 6), 0, RGB(12, 12, 12))
Win_Box(dc, 1, 1, WinData(hWnd, 6)-1, 1, RGB(128,128,128))
Win_Box(dc, 0, 0, 0, 16, RGB(12,12,12))
Win_Box(dc, 1,1,1,15, RGB(12,12,12))
Win_Box(dc, WinData(hWnd, 6)-1, 1, WinData(hWnd, 6)-1, 15, RGB(192,192,192))
if WinData(hWnd, 26) = -1
restore Down0:
else
Restore Down1:
endif
Win_DrawDataImage(dc, WinData(hWnd, 6)-2-12, 2, 12, 12)
Win_Box(dc, 1, 15, WinData(hWnd, 6)-1, 15, RGB(192,192,192))
Win_Text(dc, 3, 1, WinText$(hWnd, WinData(hWnd, 28)), RGB(12,12,12))
if WinData(hWnd, 26) = 1
Win_Box(dc, 0, 19, WinData(hWnd, 6), WinData(hWnd, 7), RGB(255,255,255))
Win_OutBox(dc, 0, 19, WinData(hWnd, 6), WinData(hWnd, 7), RGB(12, 12, 12))
For Z=1 to WinData(hWnd, 29)
if WinData(hWnd, 28) = Z
Win_Box(dc, 2, 5 + (Z*16), WinData(hWnd, 6)-2, 2 + ((Z+1)*16), RGB(10,36,106))
Win_Text(dc, 2, 3 + (Z*16), WinText$(hWnd, Z), RGB(255,255,255))
else
Win_Text(dc, 2, 2 + (Z*16), WinText$(hWnd, Z), RGB(12, 12,12))
endif
next Z
endif
Win_EndPaint(dc)
endcase
endselect
Down0:
Data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,789516
Data 16777215,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,8421504,789516
Data 16777215,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,8421504,789516
Data 16777215,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,8421504,789516
Data 16777215,12632256,12632256,789516,789516,789516,789516,789516,12632256,12632256,8421504,789516
Data 16777215,12632256,12632256,12632256,789516,789516,789516,12632256,12632256,12632256,8421504,789516
Data 16777215,12632256,12632256,12632256,12632256,789516,12632256,12632256,12632256,12632256,8421504,789516
Data 16777215,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,8421504,789516
Data 16777215,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,8421504,789516
Data 16777215,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,8421504,789516
Data 16777215,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,789516
Data 789516,789516,789516,789516,789516,789516,789516,789516,789516,789516,789516,789516
Down1:
Data 789516,789516,789516,789516,789516,789516,789516,789516,789516,789516,789516,789516
Data 789516,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,8421504,16777215
Data 789516,8421504,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,16777215
Data 789516,8421504,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,16777215
Data 789516,8421504,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,16777215
Data 789516,8421504,12632256,12632256,789516,789516,789516,789516,789516,12632256,12632256,16777215
Data 789516,8421504,12632256,12632256,12632256,789516,789516,789516,12632256,12632256,12632256,16777215
Data 789516,8421504,12632256,12632256,12632256,12632256,789516,12632256,12632256,12632256,12632256,16777215
Data 789516,8421504,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,16777215
Data 789516,8421504,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,16777215
Data 789516,8421504,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,12632256,16777215
Data 789516,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
endfunction
Function Win_DrawDataImage(dc, X, Y, Width, Height)
For DY=0 to Height-1
For DX=0 to Width-1
Read Color
Win_Dot(dc, DX+X, DY+Y, Color)
next dx
next dy
endfunction
Function Win_AddComboBoxString(hWnd, String$)
WinData(hWnd, 29) = WinData(hWnd, 29) + 1 : Item = WinData(hWnd, 29)
WinText$(hWnd, Item) = String$
endfunction Item
Oh there are a couple new functions>>
Win_ActivateWindow()
Make's it so the window is update able. other wise the window is grayed(overlapped windows) and is not updated
Win_DeActivateWindow()
Make's it so the window doesn't update. while deactivated the window has a grayed title bar(overlapped windows) and doesn't update.
Win_IsActive()
checks to see if the window is active.
Win_GetTopWindow()
Returns the current top window.
Win_SetTopWindow()
Sets the top windows, paints the old and new ones, then updates the bitmap.
Win_GetFocus()
Gets which window has the focus(only applies to windows with the WS_CHILD style)
i am working on Help type files should have those within the week.
Oh almost forgot the example code hahaha.
remstart
-------------------------------------------------------------------
program name: Windows GUI Function Example.
-------------------------------------------------------------------
written by: Caleb Stewart
date:
-------------------------------------------------------------------
comments: Displays a overlapped window with a combobox
-------------------------------------------------------------------
remend
Sync on
Sync rate 0
WinX=(640/2)/2+25
WinY=(480/2)/2+25
set display mode 640,480,32
set window on
set window position WinX,WinY
Load music "Uncap.mp3",1
Gosub Define
Win_Sys_Initiate(2,1)
MainWnd = Win_CreateWindow(WC_OVERLAPPED(1), "Calculator", WS_OVERLAPPED(1), 0, 0, 400, 300, 0, 0)
Combo = Win_CreateWindow(WC_COMBO(1), "My Window", WS_CHILD(1), 10, 10, 100, 100, MainWnd, 0)
Win_AddComboBoxString(Combo, "Item")
Win_AddComboBoxString(Combo, "Another")
do
Win_GetMessage(0)
Win_SystemUpdate()
ink rgb(255,255,255),0
set cursor 0,0
Print "Screen Frames Per Second >> " + str$(Screen FPS())
Print "Message Being Send >> " + Str$(Msg(2)) + " >> Window >> " + Str$(Msg(1))
Sync
loop
Define:
Rem Win Function Dims. Needed at the beginning of all programs using Win Functions
Dim WinData(1000, 50) : Dim WinClass(150, 15) : Dim HDC(1000, 4) : Dim Rect(4)
Dim WinMsg(1000, 4) : Dim Msg(4) : Dim WinChild(1000, 5000) : Dim WinText$(500, 1000)
Dim WinSysData(5) : DIm WinMenu(1000, 100, 100) : Dim WinMenuText$(1000, 100, 100)
Rem Win Function Classes/Messages/Styles
dim WM_LBUTTONDOWN(1):dim WM_LBUTTONUP(1):dim WM_MOVE(1):dim WM_PAINT(1):dim BM_SETSTATE(1):dim BM_GETSTATE(1):dim WS_OVERLAPPED(1): rem DarkEDIT global replacement
dim WS_BORDER(1):dim WM_DESTROY(1):dim WS_CHILD(1):dim WM_KEYDOWN(1):dim WC_BUTTON(1):dim WM_CREATE(1):dim WM_COMMAND(1):dim WM_CREATECURSOR(1): rem DarkEDIT global replacement
dim EM_SETSCROLL(1):dim DBM_GETSTATE(1):dim DBM_SETSTATE(1):dim WC_EDIT(1):dim WC_CHECK(1):dim PBM_SETSTEP(1):dim PBM_STEP(1):dim PBM_SETPOS(1): rem DarkEDIT global replacement
dim PBM_SETMAX(1):dim WC_PROGRESS(1):dim WC_LIST(1):dim WM_LMOUSEHOLD(1):dim WC_OVERLAPPED(1): dim WC_SLIDER(1): rem DarkEDIT global replacement
dim WC_COMBO(1): rem darkEDIT global replacement
WM_LBUTTONDOWN(1) = 1 : WM_LBUTTONUP(1) = 2 : WM_MOVE(1) = 3 : WM_PAINT(1) = 4 : BM_SETSTATE(1) = 5 : BM_GETSTATE(1) = 6 : WM_LMOUSEHOLD(1) = 19
WS_OVERLAPPED(1) = 1 : WS_BORDER(1) = 2 : WM_DESTROY(1) = 7 : WS_CHILD(1) = 3 : WM_KEYDOWN(1) = 8 : WC_BUTTON(1) = 101 : WM_CREATE(1) = 9
WM_COMMAND(1) = 10 : WM_CREATECURSOR(1) = 11 : EM_SETSCROLL(1) = 12 : DBM_GETSTATE(1) = 13 : DBM_SETSTATE(1) = 14 : WC_CHECK(1) = 103
PBM_SETSTEP(1) = 15 : PBM_STEP(1) = 16 : PBM_SETPOS(1) = 17 : PBM_SETMAX(1) = 18 : WC_PROGRESS(1) = 104 : WC_LIST(1) = 105 : WC_EDIT(1) = 102
WC_OVERLAPPED(1) = 106 : WC_SLIDER(1) = 107 : WC_COMBO(1) = 108
return
OH YA! i also go sizing to work on overlapped windows and instead of using "Repeat : Sync : until Mouseclick() = 0" with the x button it acts normal! lol
New Site! Check it out \/