Don't know enough about MaxGUI to finish it.
Strict
Framework maxgui.win32maxgui
Import maxgui.drivers
Import brl.eventqueue
Local window:TGadget
window=CreateWindow("My Window",40,40,640,480)
Local h:TWindowsHyperlink=New TWindowsHyperlink
h.Create(window,0)
h.SetArea 4,4,640,18
While True
WaitEvent
Print CurrentEvent.ToString()
Select EventID()
Case EVENT_WINDOWCLOSE
End
End Select
Wend
Type TWindowsHyperlink Extends TWindowsGadget
Field _style
Method Create:TWindowsHyperlink(group:TGadget,style)
Local xstyle,wstyle,hotkey
Local hwnd,parent
wstyle=WS_CHILD|SS_NOPREFIX|WS_CLIPSIBLINGS|SS_NOTIFY
Select style&24
Case LABEL_LEFT wstyle:|SS_LEFT
Case LABEL_RIGHT wstyle:|SS_RIGHT
Case LABEL_CENTER wstyle:|SS_CENTER
End Select
Select style&7
Case LABEL_FRAME wstyle:|WS_BORDER
Case LABEL_SUNKENFRAME wstyle:|SS_SUNKEN
Case LABEL_SEPARATOR wstyle:|SS_ETCHEDFRAME
End Select
wstyle=WS_VISIBLE | WS_CHILD | WS_TABSTOP
parent=group.query(QUERY_HWND_CLIENT)
hwnd=CreateWindowExW(xstyle,"SysLink","<A HREF=~qhttp://www.leadwerks.com\~q>www.leadwerks.com</A> ",wstyle,0,0,0,0,parent,hotkey,GetModuleHandleW(Null),Null)
_style = style
Register GADGET_BUTTON,hwnd
Return Self
EndMethod
Method SetArea(x,y,w,h)
If ((_style & 7) = LABEL_SEPARATOR) Then
If (w > h) Then h = 4 Else w = 4
EndIf
Return Super.SetArea(x,y,w,h)
EndMethod
Method WndProc(hwnd,msg,wp,lp)
Local nmhdr:Int Ptr
Print msg+", "+WM_NOTIFY
Select msg
Case WM_ERASEBKGND;Return 1
Case WM_NOTIFY
Notify 1
Local nmhdr:Int Ptr=Int Ptr(lp)
Select nmhdr[2]
Case NM_RETURN
Notify 1
EndSelect
EndSelect
EndMethod
Method Class()
Return GADGET_BUTTON
EndMethod
EndType
|