Eigene TrackBar erstellen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Eigene TrackBar erstellen?

Beitrag 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
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag 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
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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 :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten