ComboBox nachträglich auf nur numerische Eingabe setzen
-
Hi,
kann mir jemand verraten, wie ich den Eingabebereich einer ComboBox
nachträglich zur Laufzeit auf "nur numerische" Eingaben setzen kann?
-
In dem du dir nen Zeiger auf das Eingabefeld (CEdit) holst und den Style des Edit änders (ModifyStyle oder ModifyStyleEx)
-
Hi CTecS,
ES_NUMBER habe ich nun gefunden, vielen Dank. Nur gibt es offenbar kein
direktes Gegenstück dafür oder doch? Auch will meine Verwendung von ES_NUMBER
die Eingabe nicht nur auf Zahlen beschränken.Was ich erreichen möchte ist, dass man in meiner ComboBox entweder nur
Zahlen, oder aber alphanumerische Eingaben machen kann.
(Was nun gerade der Fall ist ermittel ich aus einer zuvor angelegten ini-Datei.)cb1.ModifyStyle(0,ES_NUMBER); //cb1 ist die Membervariable von IDC_COMBO1 //Der Typ ist auf Dropdown gestellt.
Nur ist weiterhin die alphanumerische Eingabe möglich.
Was müsste ich im ersten Parameter angeben um vorherige Style zu entfernen,
oder ist das der falsch Lösungsansatz?
-
schau dir mal den Beitrag an
[url]
http://www.c-plusplus.net/forum/viewtopic-var-p-is-15284.html
[/url]alternativ kannst du deine CCombobox klasse überladen und die Eingabe selbst kontrollieren, je nachdem wei du das handhaben möchtest.
-
Den Quatsch mit FineWindow kann man sich getrost sparen, es gibt ja GetComboBoxInfo
http://msdn.microsoft.com/en-us/library/bb775939(VS.85).aspx
-
Martin wie fast immer hast Du Recht! Oder anders gesagt warum einfach wenns auch Umständlich geht
-
Ich danke euch beiden. Ich bekomme nur momentan trotz include
der windows.h COMBOBOXINFO nicht deklariert.Mein Versuch:
COMBOBOXINFO cbinfo;//nicht deklarierter Bezeichner... ::GetComboBoxInfo(GetDlgItem(IDC_COMBO4),&cbinfo);
In der MSDN finden sich soweit ich gesehen habe keine
weiteren Abhängigkeiten zur Verwendung.
-
Lass mich raten:
1. Setzt Du VC6 ein
und hast
2. nicht mal das dazu verfügbare letzte SDK installiert.Du programmierst also noch für Windows 95...
-
- Visual Studio 2008 Pro
- MS VS SDK 2008
- MS Windows SDK v6.0A
- SDK for Windows Server 2003 R2"nicht deklarierter Bezeichner"
-
WINVER korrekt gesetzt auf >=0x0500?
COMBOBOXINFO ist in der WinUser.h drin.
DieseDatei wird durch einen #include "windows.h"automatisch mit gezogen.
Schau selbst hinein.
-
Habe ich. Ist auf 0x0400. Lade das 2008er SDK herunter, damit sollte es
wieder passen.
-
Nein! Du musst eben WINVER auf 0x0500 oder höher setzen. Sonst bist Du doch wieder nur bei Win95 Kompatibilität...