 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 07.03.2014, 15:34 Titel: WinAPI kleinere und größere Problemchen :) |
|
|
Hab nun mal von vorne angefangen... und erstmal eine kleine Fensterklasse geschrieben die soweit auch funktioniert...
Jetzt wollte ich aber wenn ich ein Fenster schließe diese 'behandeln' daten löschen, zähler setzen ect... aber immer wenn ich vor oder hinter PostQuitMessage(0) bei WM_DESTROY und/oder WM_CLOSE was setze wird es nicht ausgeführt...
wie muss ich das richtig behandeln?
In Window_Ext_Window.bas hab ich unten das kurze Beispiel zum testen drin mit ein paar fenster.
Die WndProc ist in Window_Ext.bas die noch die Window_Ext.bi benötigt...
Wenn ich nun ein Fenster schließe soll in der WndProc die FensterListe entsprechend geändert werden (Eintrag löschen = speicher freigeben und zähler neu setzen)
Was ungefähr so aussehen sollte
Code: | DestroyWindow(Cast(Node_Windows ptr,CDTPTR)->WindowHandle)
Globals.WindowList.DelWindow(Cast(Node_Windows ptr,CDTPTR))
If Globals.WindowList.WindowCount = 0 Then end |
Edit: Problem Gefunden
Zitat: | ....ght-boundb.left,boundb.bottom-boundb.top,cast(HWND,p),NULL,Globals.hInstance,@NewWin) |
_________________
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 07.03.2014, 19:39 Titel: ParentWindows und ChildWindows |
|
|
Bin nun grad meine Windowsklasse am testen und experimentieren...
Jetzt hab ich ein Childwindow in einem ParentWindow... funktioniert soweit... problem ist, wie handle ich es am sinnvollsten das wenn ich das parent schließe, auch die daten vom child gelöscht werden (das fenster selbst verschwindet ja mit dem parent, aber die daten bleiben im speicher)
Edit: bin heut zu voreilig... gelöst...
Code: |
'...
'...
'******************************************************************************************************************************************************************************************************************'
' ENUMPROC
Function EnumProc(byval h_wnd as HWND, byval lParam as LPARAM) as LRESULT
Static as Integer Question
Dim as Integer Retval
Dim as String WindowText
Dim as String WindowClass
Dim as Node_Windows ptr Temp
' Fenstertext ermitteln
WindowText = Space(GetWindowTextLength(h_wnd) + 1)
Retval = GetWindowText(h_wnd, WindowText, Len(WindowText))
WindowText = Left(WindowText, Retval)
' Fensterklasse ermitteln
WindowClass = Space(256)
Retval = GetClassName(h_wnd, WindowClass, Len(WindowClass))
WindowClass = Left(WindowClass, Retval)
If (WindowClass = Globals.ClassName) Then
Temp = Globals.WindowList.FirstWindow
For l as Integer = 0 to Globals.WindowList.WindowCount-1
If Temp andalso Temp->WindowHandle = h_wnd Then
cast(integer ptr,lParam)[0] += 1
Exit For
End If
Temp = Temp -> NextWindow
Next l
If Temp Then
If Question = 0 Then
If MessageBox(NULL,"The Window contains one or more ChildWindows! Are you sure to close","Warning!", MB_YESNO) = IDYES Then
Question = 1
If Question Then cast(integer ptr,lParam)[0] = FALSE
Else
return TRUE
End If
End If
'destroy childs
DestroyWindow(Temp -> WindowHandle)
Globals.WindowList.DelWindow(Temp)
return TRUE
End If
End If
If Question Then cast(integer ptr,lParam)[0] = FALSE
Question = 0
return TRUE
End Function
Namespace Message ' Standard Message Handles
Function Msg_WM_CLOSE(byref CDTPTR as any ptr) as Integer
If (CDTPTR = 0) Then return 0
Dim as Integer ChildWarn = 0
Dim as HWND WindowHandle = Cast(Node_Windows ptr, CDTPTR) -> WindowHandle
EnumChildWindows(WindowHandle, @EnumProc, @ChildWarn)
If ChildWarn = FALSE Then
DestroyWindow(WindowHandle)
Globals.WindowList.DelWindow(Cast(Node_Windows ptr,CDTPTR))
If Globals.WindowList.WindowCount = 0 Then end
End If
return FALSE
End Function
End Namespace
'...
'...
|
_________________
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 08.03.2014, 17:52 Titel: |
|
|
Versuche grad mein erstes Gadget mit einzubinden... eine Textbox, dabei ergeben sich mehere Probleme
1. Das Childfenster sollte nicht von einem Gadget verdeckt werden:
Muss ich da eine Message im Fenster oder im Gadget behandeln?
Und welche?
2. Bei der Textbox würd ich gern mit ESC und ENTER arbeiten... in beiden fällen soll der fokus auf die box weg...
bei esc möchte ich den alten zustand herstelen (oldtext) und enter halt neu setzten, das wär aber eher intern...
laut msdn wird bei enter auf ein standardbutton verwiesen, so eins habe ich nicht
und weiß auch nicht wie ich eines definieren soll... derzeit macht es immer nur 'BING'
Ok, Fokus und Sound ist erledigt:
Code: | case WM_CHAR
Select case lobyte(wParam)
Case VK_ESCAPE
Return FALSE
Case VK_RETURN
RETURN FALSE
End Select
case WM_KEYDOWN
Select case lobyte(wParam)
Case VK_ESCAPE
?"ESC" ''Alten String wieder herstellen und Focus verlassen
SetFocus(Cast(EditData ptr,EDTPTR)->WindowHandle)
Return TRUE
Case VK_RETURN
?"ENTER" ''Neuen String setzen und Fokus verlassen
SetFocus(Cast(EditData ptr,EDTPTR)->WindowHandle)
RETURN TRUE
End Select |
Das mit dem Childfenster ist aber noch immer ein Problem _________________
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 17.03.2014, 03:29 Titel: |
|
|
Inzwischen geht das meiste eigentlich recht zuverlässig,
aber nun hab ich Probleme mit den Tabstops
Mit Tab soll man ins nächste Control wechseln angeführt einem
WS_GROUP Element und Controls mit WS_TABSTOP Style
Im Grunde funktioniert auch alles, wenn ich im Fokus ein Control habe
kann ich ins nächste wechseln, alles prima... in einem vorherigen
Versuch klappte auch was nun nicht mehr geht ohne das ich einen
gravierenden Unterschied zwischen beiden Versuchen finden kann.
Wenn ich mein Programm starte steht das Fenster im Fokus ohne ein
Control ausgewählt zu haben... wenn ich nun TAB drücke will ich ins erste
Control wechseln (so das man halt auch alles ohne Maus steuern kann)
Wie gesagt hatte es in einem vorherigen versuch geklappt, aber es gibt
keine Unterschiede zu meinem jetztigen und hier klappt es leider nicht...
Meine Fenster styles
Code: | Style:WS_TABSTOP OR WS_GROUP OR WS_VISIBLE OR WS_CLIPSIBLINGS OR WS_CLIPCHILDREN OR WS_CAPTION OR WS_OVERLAPPED OR WS_SYSMENU OR WS_MINIMIZEBOX
ExStyle:WS_EX_CLIENTEDGE OR WS_EX_CONTROLPARENT |
Das setzen des Globalen Handles für die Messageloop
Code: | Case WM_ACTIVATE
If wParam Then
Globals.tabstophandle = h_Wnd
Else
Globals.tabstophandle = NULL
End If
return FALSE |
Alternativ könnte ich auch ItemData -> whwnd setzen, sind aber immer identisch zu h_Wnd
Und hier die Messageloop die ich in meiner Mainloop aufrufe
Code: |
Sub Win_Ext_Update(byval break as integer = 0)
Dim as MSG u_Msg
'
while PeekMessage(@u_Msg,NULL,0,0,PM_REMOVE) 'Then
If (Globals.tabstophandle = NULL) orelse (IsDialogMessage(Globals.tabstophandle, @u_Msg) = NULL) Then
TranslateMessage(@u_Msg)
DispatchMessage(@u_Msg)
End If
wend'End If
If break Then sleep break
End Sub |
Es macht übrigens auch keinen unterschied of ich While/Wend oder If/Then benutze...
Wie gesagt funktioniert das Tabben ja eigentlich, aber erst dann wenn ich
bereits im Fokus eines Kontrols durch mausklick bin.
Edit:
Ich hatte in meiner Proc bei der Verarbeitung der WM_GETDLGCODE immer DLGC_WANTMESSAGE zurückgegeben um einige Dinge weiterverarbeiten zu können, es macht bisher jedoch keine probleme wenn ich 0 zurückgebe und das Tab vom Fenster aus ins erste Control funktioniert tadellos... _________________
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 17.03.2014, 20:13 Titel: |
|
|
Inzwischen bin ich wieder bei meiner ImageDropDown angekommen,
diese kann sich nach bedarf automatisch anpassen oder eine fixe Größe
haben, mit Tab erreichbar und mit Pfeiltasten (und natürlich Maus) auswählbar...
Was mich allerdings stört ist die Optik bei der Auswahl.. ich kenne zwar
DrawFocusRect... und hab auch schon ein kleines highlight drum 'gemalt'
aber ich hätte doch lieber dieses standard selectieren.. also ein
transparentes rectangle in highlightfarbe... weiß leider nicht wie ich das
anstellen kann... finde in der msdn und google nichts
 _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.03.2014, 22:22 Titel: |
|
|
Eternal_pain hat Folgendes geschrieben: | Was mich allerdings stört ist die Optik bei der Auswahl.. ich kenne zwar
DrawFocusRect... und hab auch schon ein kleines highlight drum 'gemalt'
aber ich hätte doch lieber dieses standard selectieren.. also ein
transparentes rectangle in highlightfarbe... weiß leider nicht wie ich das
anstellen kann... finde in der msdn und google nichts |
Bei welchem Teil weißt du nicht weiter?
BTW: Für die Input-Felder mit Spin-Button solltest du dir mal den Style "UDS_AUTOBUDDY" für das Spin-Control anschauen. Wenn das Spin-Control dann den nächsthöheren Tab-Index als ein Eingabefeld hat, wird es automatisch in das Eingabefeld eingelassen, so wie man das von Windows kennt. Das hängt dann nicht so hässlichen neben der Eingabebox rum. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2014, 09:58 Titel: |
|
|
Naja, ich suche nach einer Art Standardverhalten bei dem Selektieren vom Bildern
DrawFocusRect erkennt man kaum alleine
InvertRect hab ich noch gefunden, ist aber etwas drastisch
hab schon mit HatchBrush experimentiert (zB HS_CROSS) aber das sah auch nicht toll aus....
Zitat: |
BTW: Für die Input-Felder mit Spin-Button solltest du dir mal den Style "UDS_AUTOBUDDY" für das Spin-Control anschauen. Wenn das Spin-Control dann den nächsthöheren Tab-Index als ein Eingabefeld hat, wird es automatisch in das Eingabefeld eingelassen, so wie man das von Windows kennt. Das hängt dann nicht so hässlichen neben der Eingabebox rum. |
Sehe keinen wirklichen unterschied....
Edit:
Ein ganz anderes Problem mit der SpinBox ist, das ich das ganze grad mal unter windows XP getestet habe und die SpinBoxen alle nicht erstellt werden können....
Edit2:
habe mal als Fix CreateUpDownControl falls CreateWindowEx(NULL, UPDOWN_CLASS,... fehlschlägt hinzugefügt, scheint soweit zu funktionieren... _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2014, 15:41 Titel: |
|
|
Eternal_pain hat Folgendes geschrieben: | Naja, ich suche nach einer Art Standardverhalten bei dem Selektieren vom Bildern
DrawFocusRect erkennt man kaum alleine
InvertRect hab ich noch gefunden, ist aber etwas drastisch
hab schon mit HatchBrush experimentiert (zB HS_CROSS) aber das sah auch nicht toll aus.... |
Liefer doch mal ein Beispiel, wie es aussehen soll. Das "Standardverhalten" ist eben DrawFocusRect meiner Meinung nach.
Zitat: |
Sehe keinen wirklichen unterschied....
|
Dann hast du was falsch gemacht. Die Rahmenpixel links vom Spinbutton sollen da nicht sein. Wie gesagt, die Tab-Reihenfolge muss dazu auch stimmen, d.h. die Elemente müssen direkt nacheinander erzeugt werden und müssen vmtl beide auch WS_TABSTOP haben. Eventuell braucht man dazu noch ein paar mehr Flags. Hier mal eben aus einer Ressourcendatei kopiert, was ich so verwende (sollte sich leicht auf einen CreateWindowEx-Call ummappen lassen), und funktioniert auch unter XP:
Code: |
CONTROL "",IDC_SPIN_SAMPVOL1,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,258,24,11,14 |
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2014, 15:54 Titel: |
|
|
Ein Beispiel habe ich gerade nicht zur Hand, ich hab es vorerst bei InvertRect und DrawFocusRect belassen...
die Styles für mein UpDownControl
Code: |
WS_VISIBLE OR WS_CHILD OR WS_CLIPSIBLINGS OR UDS_ARROWKEYS OR UDS_ALIGNRIGHT OR UDS_NOTHOUSANDS OR UDS_SETBUDDYINT OR UDS_AUTOBUDDY |
ExStyle ist NULL
Die Editbox hat:
Code: | WS_VISIBLE OR WS_CHILD OR ES_LEFT OR WS_CLIPCHILDREN OR ES_NUMBER OR WS_CLIPSIBLINGS OR WS_TABSTOP |
als ExStyle noch WS_EX_CLIENTEDGE
wenn ich ExStyle NULL nehme sieht die Box so aus
Finde ich sieht allerdings unschön aus...
Habe aber schon wieder ein ganz neues Problem... möchte ebenfalls für die Auswahl der Font so eine Dropdownliste... leider haben manche fonts scheinbar spacings die mir das automatische anpassen verhauen...
Kann ich das irgendwie verhindern, das die font auf 0,0 in der rect ausgegeben wird?
die höhe des Textes lese ich mit GetTextExtentPoint32(fDC,FontName,len(FontName),@fSize) aus, aber da ist scheinbar das spacing nicht mit eingerechnet... _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2014, 16:36 Titel: |
|
|
Eternal_pain hat Folgendes geschrieben: | wenn ich ExStyle NULL nehme sieht die Box so aus |
Es sollte so aussehen, wenn alles richtig ist
Wie gesagt, Autobuddy braucht einen Tab-Index, von daher solltest du WS_TABSTOP bei der Edit-Box und Spin-Control angeben (sollte man sowieso bei allen Controls angeben, damit sie per Tastatur erreicht werden können).
Zitat: |
Habe aber schon wieder ein ganz neues Problem... möchte ebenfalls für die Auswahl der Font so eine Dropdownliste... leider haben manche fonts scheinbar spacings die mir das automatische anpassen verhauen...
|
Naja, das problem scheint mir eher, dass du alle Items in der Liste mit der gleichen größe Renderst, oder? Du solltest bei jedem Item die passende Höhe angeben. Hast du denn folgendes Flag verwender?
MSDN hat Folgendes geschrieben: | CBS_OWNERDRAWVARIABLE The owner of the list box is responsible for drawing its contents; the items in the list box are variable in height.
|
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2014, 16:44 Titel: |
|
|
Zitat: | Wie gesagt, Autobuddy braucht einen Tab-Index, von daher solltest du WS_TABSTOP bei der Edit-Box und Spin-Control angeben (sollte man sowieso bei allen Controls angeben, damit sie per Tastatur erreicht werden können). |
Ne, tabstop hab ich extra raus damit ich den nicht zusätzlich mit tab erreiche da die updown ja mit den Pfeiltasten gesteuert werden ansonsten wüsste ich grade nicht welches style jetzt dafür verantwortlich ist.. wegen tabstop will ich per tab in die nächste spinbox (oder was auch immer das nächste control ist) springen und nicht extra in die Pfeile... finde die Optik jetzt auch nicht so schlimm... werd ich mir wohl nochmal ansehen müssen :S
ja, hatte noch einen Fehler... die Auswahl hab ich jetzt auf eine fixe Größe gesetzt... das Problem macht nur eine Schriftart im Moment
Würde gern das ausgewählte Element (-1) vertikal zentriert zeichnen, weiß leider noch nicht ganz wie ich das anstelle... wenn ich sie in der liste versuche vertikal zentriert zu zeichnen geht irgendwie einiges schief... _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2014, 16:48 Titel: |
|
|
Eternal_pain hat Folgendes geschrieben: | Ne, tabstop hab ich extra raus damit ich den nicht zusätzlich mit tab erreiche da die updown ja mit den Pfeiltasten gesteuert werden ansonsten wüsste ich grade nicht welches style jetzt dafür verantwortlich ist.. |
Wie gesagt, wenn die Elemente richtig gruppiert sind (einen Auto-Buddy haben), bekommt das Spin-Control auch keinen Extra-Fokus, da es ja in die Edit-Box integriert ist. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2014, 17:15 Titel: |
|
|
nagut...
Optisch funktioniert es auch mit Tabstop, aber nun funktionieren die Pfeiltasten (hoch/runter) nicht mehr... oder aber nehme zusätzlich noch UDS_SETBUDDYINT dann gehen zwar die pfeiltasten wieder aber hab wieder das problem das ich das UpDown Control mit tab erreiche...
Die FontAuswahlBox funktioniert nun aber wie geollt, auch mit meinem seltsamen Problemfont in ungewöhnlicher Höhe
 _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2014, 18:52 Titel: |
|
|
Also an UDS_SETBUDDYINT alleine sollte es sicher nicht liegen, dass die Buttons den Fokus bekommen können.
Bei der Font ist ja "Math" im Namen, was mich vermuten lässt, dass da eventuell Platz für irgendwelche großen mathematischen Symbole in der Schrift "reserviert" ist. Da wird man vermutlich nichts dran ändern können. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2014, 19:04 Titel: |
|
|
Keine Ahnung was ich grade anders gemacht habe als vorhin, aber nun funktioniert die SpinBox richtig, also danke für den Tipp sieht wirklich besser aus...
Naja, komische Schrift halt
Einzige was noch etwas blöd ist, das es nicht Sortiert ist... kann im Moment auch nicht CBS_SORT benutzen weil die sonst eingestellten höhen nicht mehr zu dem jeweiligen String und somit Font passen... muss wohl noch einen Zwischenschritt vor dem einsortieren machen... _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2014, 20:49 Titel: |
|
|
Naja, das sollte auch mit CBS_SORT funktionieren. Eventuell kannst du ja im ItemData-Bereich des jeweiligen ComboBox-items eine eindeutige ID hinterlegen, die dir sagt, welches Item "in Wirklichkeit" gerade gerendet wird? (Dokumentation dazu: CB_GETITEMDATA / CB_SETITEMDATA) _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 19.03.2014, 08:34 Titel: |
|
|
Naja, das Problem ist das ich derzeit die Höhe einmalig beim erstellen der Liste bzw. des Listenitems mit CB_SETITEMHEIGHT einstelle, die ID die ich dabei nutze ist abhängig von der Reihenfolge in der sie einsortiert werden, in der WM_MEASUREITEM findet die Liste keine weitere Beachtung mehr...
Durch CBS_SORT ändert sich intern die ID, hab noch nicht versucht herauszufinden ob sie sich einmalig ändert oder mehrfach beim hinzufügen neuer Items (was ich wohl vermute) so müsste ich ja dann am ende nochmal alle Listenitems durchgehen und entsprechend die höhe setzen oder das ganze so umschreiben das ich die Höhe in der WM_MEASUREITEM setze... aber in der ItemData steht ja nur der String hier der Fontname... _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.03.2014, 15:06 Titel: |
|
|
Ich kenne jetzt nicht deine genauen internen Strukturen, aber evtl kannst du ja statt des Strings einen Index in ein Array in die ItemData packen. Das Array würde dann die passende ID (bzw hwnd/dc/whatever) und den String enthalten... oder so irgendwie. Ist kein unlösbares Problem.  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 19.03.2014, 19:06 Titel: |
|
|
Ich glaube das einfachste ist wenn ich die Strings nicht während der
enumproc einsortiere sondern in eine liste zwischenspeichere kurz mit
qsort drüber und dann erst erstelle... sollte da wohl auch noch etwas
performance beim ertellen rausholen können denke ich... soll nu grad
nicht das problem sein, ansonsten funktionierts gut
Hab noch ein fehler bei der spinbox gefunden und beseitigt...
neues element, neues problem
RadioButtons:
Das erstellen war jetzt eigentlich recht einfach, das erste der gruppe mit
WS_GROUP und WS_TABSTOP die anderen der selben gruppe ohne...
Der einfachheit wegen halt BS_AUTORADIOBUTTON
Funktioniert auf den ersten klick auch super...
Problem ist nun wenn ich manuell im code eine andere als die standard
erste 'checked' stelle.. habe ich plötzlich zwei gecheckte radiobuttons..
das soll so ja nicht sein... mit maus/tastatur im fenster selbst gehts
richtig... wie kann ich es am sinnvollsten anstellen das wenn ich einen
button der gruppe 'checked' mache die anderen entsprechen 'unchecked'
werden?
Eine Idee wäre ja, ich erweitere mein Radiobutton Type um eine liste so
das ich diese in einem subhandle gruppiere und nach einem check die liste
durchgehe und alle anderen unchecke... wäre aber recht viel Aufwand
der sich möglicherweise vermeiden lässt? _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 20.03.2014, 02:17 Titel: |
|
|
Du verwendest vermutlich nicht CheckRadioButton? Die Funktion automatisiert das Ganze für eine Gruppe von Radiobuttons. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|