Re: Set Center Align in StringGadget : Vertical 'n' Horizont
Posted: Wed Apr 25, 2018 6:59 am
Hi
Code: Select all
Procedure StringGadgetVCenter(gadNum)
lineCount = SendMessage_(GadgetID(gadNum), #EM_GETLINECOUNT, 0, 0)
hdc = GetDC_(GadgetID(gadNum))
SelectObject_(hdc,FontID(0))
GetTextExtentPoint32_(hdc,"Qj",2,textXY.SIZE)
ReleaseDC_(GadgetID(gadNum), hdc)
eRect.RECT
GetClientRect_(GadgetID(gadNum),eRect)
eRect\top = (GadgetHeight(gadNum) - textXY\cy*lineCount) / 2
eRect\bottom = eRect\top + textXY\cy*lineCount
SendMessage_(GadgetID(gadNum), #EM_SETRECT, 0, eRect)
EndProcedure
LoadFont(0, "Courier", 20)
If OpenWindow(0, 0, 0, 300, 250, "StringGadget Centered Text", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(0, 10, 10, 280, 230, "Vertical and Horizontal" + #CRLF$ + "Centered Text in" + #CRLF$ + "Multiline StringGadget", #ES_MULTILINE | #ES_CENTER)
SetGadgetFont(0,FontID(0) ) ; This stops it showing the last line ("Multiline StringGadget").
StringGadgetVCenter(0)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf