In SpinBox Buttonklick simulieren
-
also ComboBoxen per SendMessage äneren hat alles gefruchtet
auch Texteinfuegen in die SpinBoxen hat gefruchtetich habe mehrer SpinBoxen die Anwendung die ich fersteuerer ist so gestrickt
das sie Ihre Berechnung durchfuehrt sobald der User Daten in der SpinBox haendisch einträgt. Genau das will ich simulieren aber ich kriege die
das TEXT_VALUE_CHANGE-CallbackMethode einfach nicht in gang!!!Hier der Code
hwndDlgItem = FindWindowEx(hwndDlg,0,"TSpinEdit",0); if(hwndDlgItem != NULL) { cout << endl << "Ein TSpinEdit gefunden" << endl; hwndDlgItem = FindWindowEx(hwndDlgItem,0,"TSpinButton",0); if(hwndDlgItem != NULL) { // Ich komme genau bis hier durch was auch Sinn und zweck macht und so sein soll, "hwndDlgItem" habe ich überprüft per WinSpector stimmt auch cout << "Versuche Klicksimulation auf einen TSpinButton" << endl; // Es kann eigentlich nur hieranliegen das ich den Klick auf die SpinBox nicht richtig ansteuere, hwndDlgItem ist wie gesagt ein HWND auf eine TSpinButton einer SPinBox Handle sind korrekt und mit WinSpector überprüft SendMessage (hwndDlgItem, WM_KEYUP, (WPARAM) WM_USER,0); // muss fuer TSpinButton KEY_UP anders aussehen SendMessage (hwndDlgItem, WM_KEYDOWN, (WPARAM) WM_USER,0); //muss fuer KEY_DOWN anders aussehen } }hmm an den zwei SendMessage tappe ich im Dunkel momentan

hmm und fuer google ist mir noch kein gelungener Suchquery eingefallen
Im Petzold sowi der API-Refernez habe ich mom auch noch nix gefunden!
-
hwndDlgItem = FindWindowEx(hwndDlg,0,"TSpinEdit",0); if(hwndDlgItem != NULL) { cout << endl << "Ein TSpinEdit gefunden" << endl; hwndDlgItem = FindWindowEx(hwndDlgItem,0,"TSpinButton",0); if(hwndDlgItem != NULL) { cout << "Versuche Klicksimulation auf einen TSpinButton" << endl; SendMessage (hwndDlgItem, WM_KEYDOWN, VK_UP, 0); SendMessage (hwndDlgItem, WM_KEYDOWN, VK_DOWN, 0); } }goil jup jetzt duds

-
Ist es nicht einfach WM_HSCROLL bzw. WM_VSCROLL direkt an das Parent zu senden. Diese nachrichten sind verantwortlich für die Änderungen und werden von einem Up/Down Control auch erzeugt.
-
hmm werde das auch mal ausprobieren. aber obiges hat schon gefruchtet und funzt!
Bei meinem Teil ist das so Du hast Instanzen von TSpinEdit auf nem GUI
Wenn man sich die laufende Anwendung mit WinSpector anguckt im WinSpector
hat eben jedes TSpinEdit als Child einen TSpinButton.Da ich diese/deren HWND ueber des HWND der TSinEdit mit FindWindowEx
verifizieren konnte habe ich SendMessage kurzerhand eben das direkte HWND
des jeweiligen TSpinButton zugeschoben. Und das sorgt fuer den Effekt den ich mir vorgestellt habe.
-
Martin Richter schrieb:
Ist es nicht einfach WM_HSCROLL bzw. WM_VSCROLL direkt an das Parent zu senden. Diese nachrichten sind verantwortlich für die Änderungen und werden von einem Up/Down Control auch erzeugt.
Hmm *gruebel* wie gesagt ich bin kein Hardcorefreak in Sachen WinAPI
aber WM_HSCROLL undWM_VSCROLL....WM_HSCROLL horizontal scrolling
WM_VSCROLL vertical scrolling
ist das nicht eher fuer Scrollbars gedacht. Wenn man es fuer den Fall des SpinButton bedrachtet müsste dieser nur WM_VSCROLL verstehen.
mfg sclearscreen
-
Martin Richter schrieb:
Ist es nicht einfach WM_HSCROLL bzw. WM_VSCROLL direkt an das Parent zu senden. Diese nachrichten sind verantwortlich für die Änderungen und werden von einem Up/Down Control auch erzeugt.
Aber diese beiden Messages scheinen wohl eher nur anwendbar auf ScrollBars oder?
Ich bin kein HardcoreGuru in WinAPI! Aber die beiden Messages tragen das doch schon in Ihrer Syntax deshalb meine Vermutung. Ein TSpinButton koennte so denke ich bestenfalls was mit WM_VSCROLL anfangen. Aber da muesste man diesem dann auch noch eine Nachricht über LPARAM oder WPARM schicken damit der weiss
wohin er drehen soll nach unten oder nach oben?
Also eine funktionierende Lösung habe ich bereits mit der man vollkommen leben kann.
Aber wäre nett wenn sich Eine/Einer mal villeicht darauf Antwort hätte.
Gruss sclearscreen

-
Wenn wir über Up/Down Controls von Windows reden, versenden die eindeutig WM_VSCROLL/WM_HSCROLL Nachichten, nachzulesen hier:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefudn_deltapos.aspZitat:
The UDN_DELTAPOS message is sent before the WM_HSCROLL message, which actually changes the control's position. This enables you to examine, accept, modify, or reject the change.
-
man lernt nie aus

ich sagte ja bereits bin kein WinAPI-Guru!
Gruss sclearscreen
