Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

08.03.2014, 17:03

[WinApi] Handling

Ich versuche gerade ein kleines Framework für die AinApi zu basteln und stoße da immer wieder auf kleinere Probleme


(Link)


Hier hab ich Ein Fenster mit Child und einer Textbox...

Hier habe ich das Problem das mein Childfester von der Textbox verdeckt wird, welche Messages muss ich wie und wo behandeln damit Fenster nicht verdeckt werden?

Bei der Textbox bin ich gerade erst dran und möchte hier bei ESC und ENTER die daten im feld verarbeiten und der fokus soll nicht mehr auf die textbox liegen...
wie verhindere ich das derzeitige 'bing' vom system und verlasse den fokus?

2

08.03.2014, 20:07

Mit welchen Flags erstellst du die Fenster? Ohne Code kann ich nur raten.

3

09.03.2014, 08:34

Bin mir nicht mehr sicher mit welchen Styles ich die Fenster genau erstellt hatte

Habe jetzt WS_CLIPSIBLINGS OR WS_CLIPCHILDREN bei meinen Fenstern und CLIPSIBLINGS bei den Controls das scheint das Problem wohl gelöst zu haben


(Link)

4

11.03.2014, 05:44

Der Übersicht halber wollte ich meine Controls SubClassen und stieß dabei auf einige Probleme... explizit erst mal im meine GroupBox

Wenn ich diese SubClasse, bekomme ich weder in der WinProc noch in der SubProc eine WM_CTLCOLORSTATIC Message und die GroupBoxen werden nicht mehr gezeichnet.
Lasse ich sie normal über die WinProc laufen funktioniert alles Problemlos und könnte über das handle der lParam entsprechend meine GroupBoxen in meiner Controlliste suchen und behandeln, was aber irgendwie nicht Sinn der Sache war....

Gibt es da noch irgendwelche Möglichkeiten damit Subclassing der Groupbox (und evtl anderer Controls) richtig funktioniert?

Mir geht es dabei hauptsächlich darum Optional Font und Schriftfarbe ect. für die Controls einstellen zu können

(Link)


Edit:
Eine andere Sache die ich erst mal 'auf die Seite' gelegt habe da es mir nicht unbedingt wichtig ist:
Childfenster kann ich zwar Problemlos in ein anderes Fenster (gern auch in ein zweites oder drittes Childfenster) setzen, allerdings gibt es dann Probleme mit Controls wie zB einer EditBox, ich kann evtl. noch schreiben, aber das Handling mit selektieren/Enter/Esc/Tab funktioniert dort leider nicht...

Viel Googlen verweist da immer auf MDI aber sollte das nicht auch mit 'normalen' Fenstern richtig gehen?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »EternalPain« (11.03.2014, 05:58)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

11.03.2014, 09:38

Zitat von »MSDN«

A static control, or an edit control that is read-only or disabled, sends the WM_CTLCOLORSTATIC message to its parent window when the control is about to be drawn. By responding to this message, the parent window can use the specified device context handle to set the text foreground and background colors of the static control.

;)

6

11.03.2014, 10:28

Haste schön kopiert

Log ohne Subclass:

Zitat

unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
WM_CTLCOLORSTATIC message from GROUPBOX Rahmen
WM_CTLCOLORSTATIC message from GROUPBOX Text
WM_CTLCOLORSTATIC message from GROUPBOX Oben
WM_CTLCOLORSTATIC message from GROUPBOX Unten
WM_CTLCOLORSTATIC message from GROUPBOX Effekt
WM_CTLCOLORSTATIC message from GROUPBOX Kanten
WM_CTLCOLORSTATIC message from GROUPBOX Licht


Messages kommen an:

Log mit SubClass

Zitat

unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message
unidentified WM_CTLCOLORSTATIC message


kommen nicht an

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

11.03.2014, 10:30

Kommen wo an? Kommen wo nicht an?

8

11.03.2014, 10:51

Ohne SubClass kamen sie in dem Standard Messagehandler des Fensers an, mit Subclass aber weder im Fenster noch in SubClasshandler der Groupbox, habe den Fehler aber nun gefunden... hatte in meiner SubClass auch die WM_PAINT Message verarbeitet, das darf man scheinbar nicht machen, die Message wird jetzt ignoriert und nun geht es und de Messages kommen im Fensterhandler (also dem parent) an...

Wenn ich nun aber individuelle Farben/Fonts benutzen möchte muss ich diese ja ständig erst im jeweiligen handler extra suchen/einstellen... macht das ganze eigentlich komplizierter als einfacher... dachte subclassing sollte das ganze vereinfachen....

ExCluSiv3

Frischling

Beiträge: 61

Wohnort: Düsseldorf

Beruf: Fachinformatiker - Ausbildung

  • Private Nachricht senden

9

11.03.2014, 13:34

Ich würde sagen die Einfachheit bzw. Komplexität kommt eher durch dein Klassen-Design, ich weis zwar nicht wie dein Code aussieht, aber durch ein gutes und ordentliches (vorallem gut durchdachtes) Design sollte das ganze recht einfach werden.

Werbeanzeige