WinAPI Library (Snippets) (1163 Beispielcodes)

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
sibru
Beiträge: 265
Registriert: 15.09.2004 18:11
Wohnort: hamburg

Re: WinAPI Library (Snippets) (493)

Beitrag von sibru »

Hab´ das mit der Ausrichtungs-Abfrage hier rumliegen:

Code: Alles auswählen

;Modul      AusrichtGet Version 1.01 vom 17.11.2004 
#PB_Vers  = "4.20"            
;
;Funktion:  liefert Ausrichtung einer ListIcon-Spalte
;
;Aufruf:    Ausrichtung = LI_AusrichtGet(GadNr, Spalte)
;           GadNr:  #GadgetNr eines ListIcon´s
;           Spalte: 0-basierende SpaltenNr (1. Spalte = Nr 0) des
;                   ListIcon´s, dessen Ausrichtung ermittelt werden
;                   soll
;
;           Diese Funktion liefert:
;           -1  bei Fehler (Gadget nicht vorhanden, kein ListIcon,
;               ungültige SpaltenNr...)
;            0  linksbündig (=#LVCFMT_LEFT)
;            1  rechtsbündig (=#LVCFMT_RIGHT)
;            2  mittig (=#LVCFMT_CENTER)
;

;#jaPBeExt exit
Procedure LI_AusrichtGet(GadNr, Spalte)
  Protected Ausricht.LV_COLUMN
  Ausricht\mask = #LVCF_FMT
  If SendMessage_(GadgetID(GadNr), #LVM_GETCOLUMN, Spalte, @Ausricht) = 0
    Ausricht\fmt = #LVS_NOCOLUMNHEADER - 1 ;Error
  EndIf
  ProcedureReturn Ausricht\fmt - #LVS_NOCOLUMNHEADER ;?
EndProcedure
viel Erfolg...
Bild Bild
Benutzeravatar
Rudi
Beiträge: 143
Registriert: 22.04.2010 18:28
Wohnort: #PB_Any

Re: WinAPI Library (Snippets) (493)

Beitrag von Rudi »

@Thomas
Dass das Timeout 1 überflüssig ist ist mir schon klar, denn WaitWindowEvent() wartet, anders als WindowEvent(), ohnehin auf ein Ereignis. Da ich mit PureFORM arbeite, sollte man diesbezüglich den entsprechenden Programmierer kontaktieren.
Kommando zurück: Standardmäßig ist in PureFORM WaitWindowEvent() gesetzt und nicht WaitWindowEvent(1). Habe immer mit jeder neuen Version die alten Einstellungen übernommen und vergessen warum ich das mal eingestellt hatte. :praise:

Zum 2. Beispiel muss ich wiederholen dass ich nur über WinXP verfüge. Und da sieht das Fenster wie gewohnt aus und lässt sich auch schließen. Was uns hier weiter gebracht hätte wäre die Nachricht, ob sich das Fenster unter Vista und/oder Win7 auf den Desktop legt. Und darauf kommt es hier in erster Linie an. Dann wäre als Nächstes interessant zu wissen, was es bedeutet wenn das Aero-Design verloren geht. Lässt sich das Fenster nicht mehr schließen, weil eventuell keine Buttons mehr vorhanden sind?

Zum 3. Beispiel kann ich nur sagen: Das Problem wird durch PureAnfänger (wie mich) nicht gelöst werden!

@sibru
Der Code funktioniert doch wunderprächtig!
Vielen Dank! :allright:

@RSBasic
Der Code von sibru sollte auch ins Archiv übernmmen werden!

Gruß, Rudi
Zuletzt geändert von Rudi am 11.05.2010 17:33, insgesamt 1-mal geändert.
Win7 (x64)PB 5.4x (x86)5,7 Windows-LeistungsindexSuche
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: WinAPI Library (Snippets) (493)

Beitrag von RSBasic »

Sorry erstmal, dass ich erst so spät antworte, hatte einige Probleme, die erstmal behoben sind.



Hallo Rudi,


vielen Dank erstmal für das Einreichen von WinAPI-Beispielcodes.
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:
Sowas hab ich letztens schon hinzugefügt: http://www.rsbasic.q-soft.ch/index.php? ... &Itemid=59

Sowas sieht man auch in einer Installation zum Schluss (z.b. Wise Installer), wenn ein extra kleines "Popup"-Fenster über den ProgressBarGadget auftaucht und sagt, dass bestimmte Registrierungen und das Erstellen von Verknüpfungen durchgeführt werden.
Als Zweites ein Fenster, welches sich direkt auf den Desktop legt und z.B. als Grundlage für einen Desktopkalender Verwendung finden könnte:
Danke, werd ich hinzufügen.
PS: Bei mir funktioniert es.
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.
Danke, werd ich auch hinzufügen.
PS: Bei mir funktioniert es auch.

Hab: Win7x86

@sibru
Vielen Dank für den Code, werd ich ebenfalls demnächst hinzufügen.



Falls jemand noch weitere Codes hat, nur zu ;)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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

Re: WinAPI Library (Snippets) (493)

Beitrag von ts-soft »

Der dritte Code zeigt weder unter WindowsXP noch unter Sieben den Text rechts ausgerichtet an,
der Text steht mittig, bevor ich den Button drücke und danach auch /:->
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
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: WinAPI Library (Snippets) (493)

Beitrag von RSBasic »

Hallo Thomas,


hm, ich habs nur unter Windows7 x86 getestet und da funktioniert es.
Habs jetzt mal auch unter XP 32 Bit getestet, aber hast Recht, funktioniert nicht.
Warum es unter Windows7 64 Bit und unter WinXP nicht funktioniert, frage ich mich grad auch.

Wie man die Ausrichtung nachträglich einstellt, weiß ich grad nicht, hab auch schon in Boards mit Google gesucht, aber nichts gefunden.
Die einzige Möglichkeit ist, dass man gleich zu Beginn einstellt, welche Ausrichtung man haben möchte:

Code: Alles auswählen

EnableExplicit

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  StringGadget(1,10,10,200,20,"Testtext",#ES_RIGHT)
  
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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

Re: WinAPI Library (Snippets) (493)

Beitrag von ts-soft »

Ob ich Windows 7 x64 oder x86 nutze, dürfte keine Rolle spielen, die PB-Version
alleine sollte entscheident sein und das war x86!
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
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: WinAPI Library (Snippets) (493)

Beitrag von RSBasic »

Dieser Code funktioniert aber schon oder?

Code: Alles auswählen

EnableExplicit

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  StringGadget(1,10,10,200,20,"Testtext",#ES_RIGHT)
 
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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

Re: WinAPI Library (Snippets) (493)

Beitrag von ts-soft »

RSBasic hat geschrieben:Dieser Code funktioniert aber schon oder?
Der funktioniert.
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
sibru
Beiträge: 265
Registriert: 15.09.2004 18:11
Wohnort: hamburg

Re: WinAPI Library (Snippets) (493)

Beitrag von sibru »

@RSBasic: hier das Setzen der Spalten-Ausrichtung:

Code: Alles auswählen

;Modul      Ausricht Version 1.03 vom 29.01.2009
;
;Funktion:  setzt Ausrichtung einer Spalten in einem ListIcon
;
;Aufruf:    LI_Ausricht(GadNr, Spalte, Ausricht$)
;           GadNr    = #Gadget-Nr des ListIcon´s
;           Spalte   = 0-basierende Spalten-Nr
;           Ausricht$= Art der Ausrichtung:
;                      "<" = linksbündig (vorgabe)
;                      "X" = mittig
;                      "x" = mittig
;                      ">" = rechtsbündig
;                      Alle anderen Zeichen in Ausricht$ werden ignoriert !!!
;                      Ist keines der oben angegebenen Zeichen enthalten, so
;                      wird "<" benutzt
;

;#jaPBeExt exit
Procedure LI_Ausricht(GadNr, Spalte, Ausricht$)
  Protected Ausricht.LV_COLUMN
  Ausricht\mask = #LVCF_FMT
  If FindString(Ausricht$,">",1) : Ausricht\fmt = #LVCFMT_RIGHT 
  ElseIf FindString(Ausricht$,"<",1) : Ausricht\fmt = #LVCFMT_LEFT 
  ElseIf FindString(UCase(Ausricht$),"X",1) : Ausricht\fmt = #LVCFMT_CENTER
  Else : Ausricht\fmt = #LVCFMT_LEFT 
  EndIf
  SendMessage_(GadgetID(GadNr), #LVM_SETCOLUMN, Spalte, @Ausricht)
EndProcedure
MFG SiBru
Bild Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: WinAPI Library (Snippets) (493)

Beitrag von RSBasic »

So, nun ist es vollbracht.
Ich habe diesmal einen kostenpflichtigen Webspace inkl. .de-Top-Level-Domain bestellt.

Die Einrichtung der HP-Dateien und der MySql-Datenbank auf dem neuen Webspace wurde bereits gestern durchgeführt, nur musste ich auf die Domain-Registrierung und -Freischaltung abwarten. Nun ist meine Seite fertig und bereit.

Meine offizielle URL ist und bleibt: www.rsbasic.de

Die Seiten sind wie gesagt alles schon fertig eingerichtet, man kann also jetzt beispielsweise auf die WinAPI Library zugreifen.

Werd später noch eine Subdomain für das Zugreifen der WinAPI Library bereitstellen, so dass man direkt auf die WinAPI Library zugreifen kann.

Viel Spaß ;)

@sibru
Danke für dein Code, aber das Ändern der Spalten-Ausrichtung hab ich bereits: http://www.rsbasic.de/index.php?option= ... &Itemid=59
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten