Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi,

Folgender Fall:

Ich hab ne Autocheckbox erstellt und möchte deren Status abfragen!

Dazu hab ichs mit folgender Funktion versucht:

LRESULT Test;

Test = SendMessage(hwndButton[2], BM_GETCHECK, 0, 0);

Das ganze lässt sich ohne Fehlermeldung ausführen, nur steht dann in Test immer der Wert 0 drin, in meinem Fall kann der Rückgabewert aber nur BST_CHECKED oder BST_UNCHECKED sein!

Die Autocheckbox wurde folgendermaßen erstellt:

hwndButton[2] = CreateWindow(TEXT("button"), button[2].szText, WS_CHILD | WS_VISIBLE | button[2].iStyle, i_cxChar, i_cyChar * (1 +2 * 2), 20 * i_cxChar, 7 * i_cyChar / 4, hwnd, (HMENU) 2, ((LPCREATESTRUCT) lParam)->hInstance, NULL);

Bei hwndButton[2] handelt es sich definitiv um eine Autocheckbox, somit wäre der Wert 0 laut MSDN eigentlich nicht möglich!

Für sachdienliche Hinweise die zum Auffinden des Fehlers führen wird eine Belohnung in Höhe von 1001 Dank ausgesetzt!

:)

Geschrieben

Also es wurde folgendermaßen deklariert:

struct

{

int iStyle;

TCHAR * szText;

}

button[] =

{

BS_DEFPUSHBUTTON, TEXT("Start"),

BS_PUSHBUTTON, TEXT("Abbrechen"),

BS_AUTOCHECKBOX, TEXT("TEST1"),

BS_AUTOCHECKBOX, TEXT("TEST2")

};

folglich sollte beim Aufruf button[2].iStyle doch BS_AUTOCHECKBOX drinnstehen! Oder mach ich da nen gedankenfehler??

Geschrieben

Ups, SORRY, hab die wichtigste Aussage ja in meinem ersten Beitrag vergessen! :eek:

Es wird auch dann 0 zurückgeliefert, wenn die Autocheckbox ein Häckchen enthält!

Dieses Häckchen wurde vorher durch:

Test = SendMessage(hwndButton[2], BM_SETCHECK, BST_CHECKED, 0);

erstellt!

Geschrieben

Also, laut Spy++ kommt der Befehl BM_SETCHECK an der richtigen Autocheckbox an! Von BM_GETCHECK steht in der Liste aber nix!

Und selbst wenn ich direkt vor der Statusabfrage den Status mittels SETCHECK festleg´ wird nicht der richtige Status ermittelt! :(

Geschrieben

BM_SETCHECK sendet Windows bei einer AutoCheckBox automatisch, wenn die nicht ankommen würde, solltest Du Dir ernsthaft sorgen machen ;)

Dass aber BM_GETCHECK nicht ankommt, kann eigentlich nur bedeuten, dass Du die Nachricht an das falsche Fenster schickst. Wird vielleicht hwndButton[2] irgendwo überschrieben?

Geschrieben

Also um bei ner AUTOCHECKBOX ein Häckchen zu setzen muss ich doch doch trotzdem SETCHECK aufrufen, ansonsten gehts ned!

Hab es nochma durchgeschaut, hwndButton[2] wird auch an keiner Stelle überschrieben!

Geschrieben

Soderle, sorry das gestern keine mail angekommen ist, aber Outlook stellte sich stur! Das Problem hat sich aber glücklicherweise erledigt!

Das kuriose an der ganzen Sache war dass laut Debugger ein Handle ungültig war! Alles noch mal durchgechecked - keinen fehler gefunden! Nachdem sich Visual Studio aufgehängt hatte und anschliessend neu gestartet werden musste funktionierte es einwandfrei! Keine Ahnung was los war!! :(

Trotzdem vielen Dank für die superschnelle Hilfe! :cool:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...