ich habe eine CLASS Statusbar mit Ot4xb geschrieben.
den Source gibt es bei Pablo unter www.xbwin.com -> xfree.public
nun gibt es keine Events beim Statusbar nur "click" also "sollte" man es mit "pure" Xbase++ machen können
Code: Alles auswählen
INLINE METHOD CreateTheStatusBar()
::hStatusBar := DllCall( "user32.dll","CreateWindowExA",;
0 ,; // extended styles
"msctls_statusbar32" ,; // control 'class' name
"" ,; // control caption
bOr(WS_CHILD,WS_VISIBLE),; // wnd Style
0,0,0,0 ,; // left,top,width,height
::SetParent():GetHWND() ,; // parent window handle
-1 ,; // control's ID
GetModuleHandleA(0) ,; // instance
0 ) // user defined info
DllCall( "user32.dll","SendMessageA",::hStatusBar,SB_SETMINHEIGHT,20,0)
DllCall( "user32.dll","SendMessageA",::hStatusBar,SB_SETPARTS,2,{180,-1})
return NIL
SB_SETPARTS gibt die Anzahl der Items an.
{180,-1} Länge Item 0 = 180, Item 1 = -1 = Rest
Code: Alles auswählen
INLINE METHOD SetPanelText(cText, nItem)
DEFAULT nItem TO 0 // Zero-based
IF !EMPTY(::hStatusBar)
DllCall( "user32.dll","SendMessageA",::hStatusBar,SB_SETTEXT,nItem,cText )
ENDIF
return NIL
damit hat man einen rudimentären Statusbar OHNE MsComCtl.OCX
---
ich habe nun nicht den gesamten Source von DXE_SBAR genommen weil ich paar ot4xb Sachen verwende wo ich nicht weiss wie man es mit "pure" Xbase++ machen kann. schaut euch den ot4xb Source an was man noch so für "pure" Xbase++ gebrauchen kann ( Timer Uhr, Keyboard Einstellungen )
hier noch die Konstanten
Code: Alles auswählen
#define WS_CHILD 0x40000000
#define WS_VISIBLE 0x10000000
#define WM_USER 0x0400
#define SB_SETTEXT (WM_USER+1)
#define SB_SETPARTS (WM_USER+4)
#define SB_SETMINHEIGHT (WM_USER+8)