Code: Select all
Global oldIpProc
Procedure ipCallback(hWnd, Msg, wParam, lParam)
Select Msg
Case #WM_PAINT
DefWindowProc_(hWnd, Msg, wParam, lParam)
hdc = GetDC_(hWnd)
SetBkMode_(hdc, #TRANSPARENT)
SelectObject_(hdc, GetStockObject_(#DEFAULT_GUI_FONT))
TextOut_(hdc, 30, 3, "-", 1)
TextOut_(hdc, 62, 3, "-", 1)
TextOut_(hdc, 94, 3, "-", 1)
TextOut_(hdc, 30, 3, "-", 1)
ReleaseDC_(hWnd, hdc)
ProcedureReturn 0
Case #WM_CTLCOLOREDIT
SetBkMode_(wParam, #TRANSPARENT)
SetTextColor_(wParam, #Red)
ProcedureReturn GetStockObject_(#DKGRAY_BRUSH)
Case #WM_NCDESTROY
SetWindowLongPtr_(hWnd, #GWL_WNDPROC, oldIpProc)
ProcedureReturn 0
EndSelect
ProcedureReturn CallWindowProc_(oldIpProc, hWnd, Msg, wParam, lParam)
EndProcedure
OpenWindow(0, 0, 0, 147, 40, "", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
SetClassLongPtr_(WindowID(0), #GCL_HBRBACKGROUND, GetStockObject_(#DKGRAY_BRUSH))
IPAddressGadget(0, 10, 10, 127, 19)
SetGadgetState(0, MakeIPAddress(127, 0, 0, 1))
; reposition edit controls
Edit4 = GetWindow_(GadgetID(0), #GW_CHILD)
Edit3 = GetWindow_(Edit4, #GW_HWNDNEXT)
Edit2 = GetWindow_(Edit3, #GW_HWNDNEXT)
Edit1 = GetWindow_(Edit2, #GW_HWNDNEXT)
SetWindowPos_(Edit1, 0, 3, 3, 25, 13, #SWP_NOZORDER)
SetWindowPos_(Edit2, 0, 35, 3, 25, 13, #SWP_NOZORDER)
SetWindowPos_(Edit3, 0, 67, 3, 25, 13, #SWP_NOZORDER)
SetWindowPos_(Edit4, 0, 99, 3, 25, 13, #SWP_NOZORDER)
; set background brush
SetClassLongPtr_(GadgetID(0), #GCL_HBRBACKGROUND, GetStockObject_(#LTGRAY_BRUSH))
; remove border
SetWindowLongPtr_(GadgetID(0), #GWL_EXSTYLE, GetWindowLongPtr_(GadgetID(0), #GWL_EXSTYLE)&~#WS_EX_CLIENTEDGE)
SetWindowPos_(GadgetID(0), 0, 0, 0, 0, 0, #SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
; set callback
oldIpProc = SetWindowLongPtr_(GadgetID(0), #GWL_WNDPROC, @ipCallback())
While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend