GadgetItemToolTip ... Gibbed sowatt?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

GadgetItemToolTip ... Gibbed sowatt?

Beitrag von Xaby »

Vielleicht irgendwie mit

Ergebnis = GadgetItemID(#Gadget, Eintrag)

und

GadgetToolTip(#Gadget, Text$)

???

Ziel ist, dass man am Ende wie mit dem ToolTipGadget auch den Text ändern kann, wenn man weiß, ...

Oder anders, woher weiß ich, überwelcher Zelle mein Mauszeiger ist?
Dann könnte ich ja den ZellenInhalt oder was auch immer in den GadgetToolTip schreiben.

Gruß, Folker :allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Du musst dich deutlicher ausdrücken, was meinst du mit Zele? Willst du auf ein Listicongadget() hinaus? Wenn ja, sag das bitte DEUTLICH.

Code: Alles auswählen

x=DesktopMouseX()
y=DesktopMouseY()

gadgetID=GetWindowFromPoint_(x, y)
Dieser API Befehl gibt die die gadgetID (das Handle) Des Gadgets oder des Fensters zurück, auf dem sich der Mauszeiger befindet, kannst du eigene Koordinaten einsetzen. Hinweis: gadgets sind immer über fenstern, wenn also die Maus auf einem Textgadget drauf ist, kriegst du davon das Handle, nicht vom fenster. Kriegst nur das hwnd, wenn die Maus auf eine freire Stelle auf dem Fenster parkt.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Code: Alles auswählen

Declare WindowCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)

#LVS_EX_INFOTIP	= $00000400
#LVN_GETINFOTIPA = (#LVN_FIRST-57)
#LVN_GETINFOTIPW = (#LVN_FIRST-58)

#LVM_SETEXTENDEDLISTVIEWSTYLE = (#LVM_FIRST + 54)

Global lpBuffer.l

OpenWindow(0,0,0,400,300,"untitled",#WS_OVERLAPPEDWINDOW | 1)

CreateGadgetList(WindowID(0))

ListIconGadget(0,5,5,0,0,"Name",350)

For i=1 To 50 : AddGadgetItem(0,-1,"Untitled ListView32 Item #" + Str(i)) : Next

SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,#LVS_EX_INFOTIP)

SetWindowCallback(@WindowCallback())

; ------------------------------------------------------------------------

Repeat 
	EventID = WaitWindowEvent()
	
	If EventID = #PB_Event_SizeWindow
		ResizeGadget(0,#PB_Ignore,#PB_Ignore,WindowWidth(0)-10,WindowHeight(0)-10)
	EndIf
Until EventID = 16

; ------------------------------------------------------------------------

Procedure WindowCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
    Select uMsg
        Case #WM_NOTIFY
        *pnmh.NMHDR = lParam
     
        If *pnmh\code = #LVN_GETINFOTIPA
        	*pnml.NMLVGETINFOTIP = lParam
        	
        	lpBuffer = ReAllocateMemory(lpBuffer,80)
  
        	PokeS(lpBuffer,GetGadgetItemText(0,*pnml\iItem,0))
        	
        	*pnml\pszText = lpBuffer        	      
        EndIf 
    EndSelect
     
    ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

@Fluid Byte ...

sieht für mich zwar etwas mystisch aus, aber ist genau das, was ich gemeint habe :shock: :D

@AND51 ...

tja, Fluid handelt, ohne noch drei Aufforderungen zu bekommen <)


Gruß, Folker :allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Xaby hat geschrieben:sieht für mich zwar etwas mystisch aus, aber ist genau das, was ich gemeint habe
Stimmt, weil ToolTips für Gadget Items als Standard nur mit dem Windows API möglich sind. Ich könnte dir näturlich auch ein "workaround" basteln das nur auf PB Befehlen beruht. Ist aber dann nicht so effizent und elegant wie die API Lösung.
Xaby hat geschrieben:tja, Fluid handelt, ohne noch drei Aufforderungen zu bekommen <)
Hehehe :twisted:

Ich weiss genau was du meinst. Das ist eine typisch deutsche Unart. Alles hinterfragen, strikt und ordentlich formuliert muß es sein, etc. Das ist keine Einbildung sondern Fakt. Da ich bis vor Kurzem auschließlich auf dem englischen board unterwegs war merkt man den Unterschied recht deutlich. :wink:
JohnMC
Beiträge: 85
Registriert: 06.01.2006 17:04
Wohnort: http://www.j-soft.de.ms
Kontaktdaten:

Beitrag von JohnMC »

@ FLuid Byte:
Danke für den Code, sehr hilfreich! :allright:
Nur wenn mein ListIcon jetzt noch CheckBoxen bekommt, werden die nichtmehr angezeigt und das ganze Programm ist im A**** :cry: , dauernd hängts und so...
Ich denke dass die Konstanten nicht für "Mit-CheckBoxen-ListIcons" geeigente sind!?

Kannst du mir die den richtigen COde für mein armes CheckBox-ListIcon geben/schreiben?

THX Grüße...JohnMC
Antworten