Seite 1 von 1
Eigene TrackBar erstellen?
Verfasst: 15.03.2007 20:31
von Blackskyliner
Hallo ich hab da mal eine Frage, warum sollte ich auch sonst einen Thread eröffnen...
Ich möchte eine eigene Trackbar erstellen, hab jedoch keinen Plan, wie ich dies machen kann. Also ich meine eine RICHTIG eigene so über CreateWindowEx. Ich finde nur den Ansatz nicht, und über Google hab ich auch nichts verwertbares gefunden...
Würd mich über Antworten freuen
MFG
Blackskyliner
Verfasst: 15.03.2007 20:40
von edel
Verfasst: 15.03.2007 20:54
von Blackskyliner
Danke, das sieht interessant aus.
Hab schon was gefunden was genau das macht wass ich wollte, aber das iss natürlich noch viel netter

mal schaun.
Achja und hier das was ich gefunden hab, und was auch funktioniert:
Code: Alles auswählen
If Message = #WM_NOTIFY
*CDHeader.NMCUSTOMDRAW = lParam
If *CDHeader\hdr\hWndFrom = GadgetID(#MainWindow_Trackbar) And *CDHeader\hdr\code = #NM_CUSTOMDRAW
Select *CDHeader\dwDrawStage
Case #CDDS_PREPAINT
ProcedureReturn #CDRF_NOTIFYITEMDRAW
Case #CDDS_ITEMPREPAINT
If *CDHeader\dwItemSpec= #TBCD_THUMB
With *CDHeader
Rectangle_(\hdc,\rc\left-1,\rc\top-2,\rc\right+2,\rc\bottom-1)
Rectangle_(\hdc,\rc\left+1,\rc\top,\rc\right,\rc\bottom-3)
EndWith
ProcedureReturn #CDRF_SKIPDEFAULT
EndIf
ProcedureReturn #CDRF_DODEFAULT
EndSelect
EndIf
EndIf
Verfasst: 15.03.2007 21:01
von ts-soft
>> Also ich meine eine RICHTIG eigene so über CreateWindowEx
Was ist RICHTIG eigene? gemalt?
Ansonsten so:
Code: Alles auswählen
Procedure CreateTrackBar(hWndParend.l, x,y,w,h)
Protected hWnd.l
hWnd = CreateWindowEx_(0, "msctls_trackbar32",0,#WS_CHILD|#WS_VISIBLE,x,y,w,h,hWndParend,0,GetModuleHandle_(0),0)
ProcedureReturn hWnd
EndProcedure
If OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 50, "Trackbar-Test")
trackbar = CreateTrackBar(WindowID(0), 10, 10, 620, 30)
While WaitWindowEvent() <> 16 : Wend
EndIf
Macht aber kaum Sinn, gibts in PB schon
