WinAPI Library (Snippets) (1163 Beispielcodes)
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: WinAPI Library (Snippets) (493)
Auch von mir ein Dankeschön für das Update.Andesdaf hat geschrieben:danke für das Update![]()
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: WinAPI Library (Snippets) (493)
Bei Gadgets > StringGadget sollte man den Titel des Eintrags Tabulatortaste deaktivieren auf "Mit Tabulator Gadgets fokussieren" ändern, da es (laut Überschrift) dasselbe wie Tabulator abschalten wäre.
Edit:
Wenn man beim 2. Link ein Gadget hinzufügt, wird bei einem TAB-Druck auch der Focus der Gadgets geändert... also ist es sogar dasselbe.
Edit:
Wenn man beim 2. Link ein Gadget hinzufügt, wird bei einem TAB-Druck auch der Focus der Gadgets geändert... also ist es sogar dasselbe.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Re: WinAPI Library (Snippets) (493)
Hallo Mok,
ja, der neue Titel "Mit Tabulator Gadgets fokussieren" passt besser zum Code.
Danke^^

Ist mir nicht aufgefallen.
Entweder lasse ich das so und ändere nur bei dem ersten Code den Titel der Seite.
Oder ich entferne den ersten oder zweiten Code und lasse den Titel so stehen. (Von mir aus, kann ich den Titel auch ändern)
Was meinst du?
ja, der neue Titel "Mit Tabulator Gadgets fokussieren" passt besser zum Code.
Danke^^
Stimmt, Zufälle gibtsMok hat geschrieben:Wenn man beim 2. Link ein Gadget hinzufügt, wird bei einem TAB-Druck auch der Focus der Gadgets geändert... also ist es sogar dasselbe.
Ist mir nicht aufgefallen.
Entweder lasse ich das so und ändere nur bei dem ersten Code den Titel der Seite.
Oder ich entferne den ersten oder zweiten Code und lasse den Titel so stehen. (Von mir aus, kann ich den Titel auch ändern)
Was meinst du?
- 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
Re: WinAPI Library (Snippets) (493)
Ich widerspreche nichtRSBasic hat geschrieben:Was meinst du?
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: WinAPI Library (Snippets) (493)
Für "Gadgets", Gadget ermitteln, ob es versteckt ist:
Gruß, Rudi (Newcomer) 
Code: Alles auswählen
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(1,10,10,100,20,"Test-Button",0)
HideGadget(1,0)
If IsWindowVisible_(GadgetID(1))=1
MessageRequester("","ButtonGadget ist nicht versteckt.",0)
EndIf
HideGadget(1,1)
If IsWindowVisible_(GadgetID(1))=0
MessageRequester("","ButtonGadget ist versteckt.",0)
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIfRe: WinAPI Library (Snippets) (493)
@Rudi
Herzlich Willkommen im Forum
Vielen Dank für das Posten eines neuen Codes.
Werd ich beim nächsten Update hinzufügen.
Herzlich Willkommen im Forum
Vielen Dank für das Posten eines neuen Codes.
Werd ich beim nächsten Update hinzufügen.
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: WinAPI Library (Snippets) (493)
@RSBasic: Ich denke Titel ändern müsste schon passen.
@Rudi: Willkommen
@Rudi: Willkommen
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Re: WinAPI Library (Snippets) (493)
Besten Dank an RSBasic und Mok, für die herzlichen Begrüßungsworte!
Hab' heute wieder eine Kleinigkeit fürs Archiv.
Als Erstes ein Fenster ohne Titelzeile, welches jedoch einen 1px schmalen Rahmen hat um sich vom Hintergrund abzuheben. Dieses könnte z.B. als About-Box oder Splash-Screen Verwendung finden:
Als Zweites ein Fenster, welches sich direkt auf den Desktop legt und z.B. als Grundlage für einen Desktopkalender Verwendung finden könnte:
Als Drittes ein Code, welcher die Textausrichtung in einem Stringgadget dynamisch ändern kann. Allerdings soll dieser Code erst ab Vista gehen. Testen kann ich das nicht. Unter XP geht er nicht.
Quelle: http://www.purebasic.fr/english/viewtop ... 13&t=36853
Bei dieser Gelegenheit möchte ich noch anfragen, ob jemand einen Code kennt, mittels welchem ich überprüfen kann, ob der Text in der jeweiligen Spalte eines Listicongadgets links, mittig oder rechts ausgerichtet ist.
Gruß, Rudi
Hab' heute wieder eine Kleinigkeit fürs Archiv.
Als Erstes ein Fenster ohne Titelzeile, welches jedoch einen 1px schmalen Rahmen hat um sich vom Hintergrund abzuheben. Dieses könnte z.B. als About-Box oder Splash-Screen Verwendung finden:
Code: Alles auswählen
If OpenWindow(0, #PB_Ignore, #PB_Ignore, 300, 200, "Über", #PB_Window_ScreenCentered)
SetWindowLong_(WindowID(0), #GWL_STYLE, #WS_VISIBLE | #WS_BORDER | #SWP_FRAMECHANGED)
ButtonGadget(0, 100, 100, 100, 25, "Beenden")
EndIf
Repeat
Select WaitWindowEvent(1)
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0) ;movable
Case #PB_Event_Gadget
Select EventGadget()
Case 0
CloseWindow(0)
Break
EndSelect
EndSelect
ForEverCode: Alles auswählen
If OpenWindow(0, #PB_Ignore, #PB_Ignore, 300, 300, "DeskKal", #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
SetParent_(WindowID(0), GetShellWindow_())
EndIf
Repeat
Select WaitWindowEvent(1)
Case #PB_Event_MinimizeWindow
Select EventWindow()
Case 0
SetWindowState(0, #PB_Window_Normal) ;nicht minimierbar
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case 0
CloseWindow(0)
Break
EndSelect
EndSelect
ForEverQuelle: http://www.purebasic.fr/english/viewtop ... 13&t=36853
Code: Alles auswählen
If OpenWindow(0, 0, 0, 270, 160, "StringGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(0, 10, 10, 250, 20, "wird rechts ausgerichtet", #ES_CENTER)
ButtonGadget(1, 10, 40, 100, 20, "Rechts ausrichten")
Repeat
eventID = WaitWindowEvent()
Select eventID
Case #PB_Event_Gadget
Select EventGadget()
Case 1
;per API:
SetWindowLong_(GadgetID(0), #GWL_STYLE, GetWindowLong_(GadgetID(0), #GWL_STYLE)&~#ES_CENTER | #ES_RIGHT)
InvalidateRect_(GadgetID(0), 0, 1)
;ohne API:
;FreeGadget(0)
;StringGadget(0, 10, 10, 250, 20, "ist rechts ausgerichtet", #ES_RIGHT)
EndSelect
EndSelect
Until eventID = #PB_Event_CloseWindow
EndIfGruß, Rudi
- 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
Re: WinAPI Library (Snippets) (493)
@Rudi
Also bei mir funktioniert nur der erste Code. Da hätte ich anzumerken, das das Timeout 1 unnötig ist,
bzw. Timeout 1 ist sowieso nicht möglich (ohne echtzeittimer liegt die genauigkeit bei ca. 20 ms)
SetWindowLongPtr_() statt SetWindowLong_() damits auch beim x64 User funktioniert.
Das zweite Beispiel erzeugt ein Fenster, das lediglich das Aero-Design verloren hat, welches sich
auch nicht mehr schliessen läßt.
Beispiel 3 macht hier garnichts.
(getestet win 7 ultimate, pb 4.41 + 4.50, x86)
Gruß
Thomas
Also bei mir funktioniert nur der erste Code. Da hätte ich anzumerken, das das Timeout 1 unnötig ist,
bzw. Timeout 1 ist sowieso nicht möglich (ohne echtzeittimer liegt die genauigkeit bei ca. 20 ms)
SetWindowLongPtr_() statt SetWindowLong_() damits auch beim x64 User funktioniert.
Das zweite Beispiel erzeugt ein Fenster, das lediglich das Aero-Design verloren hat, welches sich
auch nicht mehr schliessen läßt.
Beispiel 3 macht hier garnichts.
(getestet win 7 ultimate, pb 4.41 + 4.50, x86)
Gruß
Thomas
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.



