kennt sich jemand näher mit dem code aus?
meine frage:
SetClassLong_() mit #GCL_HBRBACKGROUND entspricht dem, wenn man im VisualEditor das Bild direkt zuweist.
ist der "Umweg" über den Brush nötig? macht der Editor das im grunde auch?
Hintergrundbild in Fenster realisieren
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
*nochmalzwischendrängel* 
Sorry Kaeru, aber leider ich habe mit der brush-structure noch so meine Probleme. Das wollte ich nochmal aufdröseln... nicht, daß ich mir hier was falsches einpräge.
Es geht wieder um
Brush.LOGBRUSH\lbStyle=#BS_PATTERN
Brush\lbColor=#DIB_RGB_COLORS
Brush\lbHatch=ImageID(1)
Als einzige Info dazu habe ich die "C" Struktur aus der Win32.hlp
typedef struct tagLOGBRUSH { // lb
UINT lbStyle;
COLORREF lbColor;
LONG lbHatch;
} LOGBRUSH;
Ich vergleiche das jetzt mal zu (meinem) besseren Verständnis mit dem Beispiel aus der PB Hilfe.
1)
Wenn das eine Strucrure ist, die bereits vordefiniert ist, dann kann ich mir also sowas wie...
Structure LOGBRUSH
lbStyle.w
lbColor.? ; wobei ich hier nicht ersehen kann, welcher Datentyp das ist.
lbHatch.l
EndStructure
..sparen, richtig?
2)
Das Erzeugen der Struktur...
Dim Brush.LOGBRUSH(1)
... passiert scheinbar mit folgendem Code:
Brush.LOGBRUSH\lbStyle=#BS_PATTERN
Sehe ich das richtig, daß hier die Erzeugung der Struktur und die Zuweisung des ersten Elementes gleichzeitig passiert?
Naja und der Rest ist dann ja eine ganz normale Zuweisung.
Sind meine Vorstellungen korrekt?
Gruß Markus

Sorry Kaeru, aber leider ich habe mit der brush-structure noch so meine Probleme. Das wollte ich nochmal aufdröseln... nicht, daß ich mir hier was falsches einpräge.
Es geht wieder um
Brush.LOGBRUSH\lbStyle=#BS_PATTERN
Brush\lbColor=#DIB_RGB_COLORS
Brush\lbHatch=ImageID(1)
Als einzige Info dazu habe ich die "C" Struktur aus der Win32.hlp
typedef struct tagLOGBRUSH { // lb
UINT lbStyle;
COLORREF lbColor;
LONG lbHatch;
} LOGBRUSH;
Ich vergleiche das jetzt mal zu (meinem) besseren Verständnis mit dem Beispiel aus der PB Hilfe.
1)
Wenn das eine Strucrure ist, die bereits vordefiniert ist, dann kann ich mir also sowas wie...
Structure LOGBRUSH
lbStyle.w
lbColor.? ; wobei ich hier nicht ersehen kann, welcher Datentyp das ist.
lbHatch.l
EndStructure
..sparen, richtig?
2)
Das Erzeugen der Struktur...
Dim Brush.LOGBRUSH(1)
... passiert scheinbar mit folgendem Code:
Brush.LOGBRUSH\lbStyle=#BS_PATTERN
Sehe ich das richtig, daß hier die Erzeugung der Struktur und die Zuweisung des ersten Elementes gleichzeitig passiert?
Naja und der Rest ist dann ja eine ganz normale Zuweisung.
Sind meine Vorstellungen korrekt?
Gruß Markus
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
soweit korrekt.
in der ersten zeile wird eine strukturierte variable des typs LOGBRUSH erzeugt, und einem teil der struktur, nämlich lbStyle der wert #BS_PATTERN zugewiesen.
weitere zuweisung, darunter auch die des bildes, folgen.
in der ersten zeile wird eine strukturierte variable des typs LOGBRUSH erzeugt, und einem teil der struktur, nämlich lbStyle der wert #BS_PATTERN zugewiesen.
weitere zuweisung, darunter auch die des bildes, folgen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Also würde auch folgendes gehen?
Gruß Markus
PS: Kanns nicht testen, habe gerade keinen PB4 Rechner zur Hand...
Code: Alles auswählen
...
Dim Brush.LOGBRUSH(1)
Brush\lbStyle=#BS_PATTERN
Brush\lbColor=#DIB_RGB_COLORS
Brush\lbHatch=UseImage(1)
SetClassLong_(WindowID(0),#GCL_HBRBACKGROUND,CreateBrushIndirect_(Brush))
...
PS: Kanns nicht testen, habe gerade keinen PB4 Rechner zur Hand...
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
nein, dann müsstest du
usw schreiben.
PS:
außerdem werden Brush(0) und Brush(1) erzeugt.. is klar, gell?
Code: Alles auswählen
Brush(1)\lbStyle=#BS_PATTERN
PS:
außerdem werden Brush(0) und Brush(1) erzeugt.. is klar, gell?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Oh, äh ja... sorry Anfängerfehler.Kaeru Gaman hat geschrieben:nein, dann müsstest duusw schreiben.Code: Alles auswählen
Brush(1)\lbStyle=#BS_PATTERN
PS:
außerdem werden Brush(0) und Brush(1) erzeugt.. is klar, gell?

(ich war gedanklich wohl noch in der PB4 Hilfe bei den Strukturen:
"...Dies bedeutet, dass a[2] ein Array von 0 bis 1 definiert, wogegen Dim a(2) ein Array von 0 bis 2 anlegt. "
Aber das ist ja wieder was anderes)
Jetzt ist alles nachvollziehbar für mich, Danke.
Gruß Markus
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.