Alles eingabefelder ReadOnly?!
-
Hi,
ich möchte alles als Read Only haben. Bei Editboxsen ist das da ja noch einfach ::SetReadOnly(true).Aber wie schaut das mit ComboBoxen und DateTimePickern aus?
THX
-
EnableWindow(FALSE)
-
Ja, ist eine Lösung, so hab ich das bis jetzt. Aber da ist die Schrieft Grau und nicht Schwarz. Ich möchte das es aber aussieht wie eine Editbox die Readonly ist.
Das andere ist einfach zu schlecht zu lesen!
-
per hand könntest du es ja machen.
Combo auswahl ok = Combo.Select
-
aber dann ist der hintergrund nicht graun
ich möchte aus optischen Gründen das die Schrieft Schwarz und der hintergrund grau ist.
-
OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
-
Ist das nur für hintergrundfarbe? Hat jemand n beispiel *nicht verstehen CDC*.
Oder kann ich damit auch die Schriftfarbe ändern?
-
Guck mal in der FAQ oder such mal. Das ist eine Funktion, die aufgerufen wird, wenn dein Control gezeichnet wird, keine, die du aufrufst.
-
Das geht einfach. Hol dir das Handle von der Combobox. Dann suchst du mit FindWindowEx nach nem Child namens 'Edit'. Das kannst du dann mit EM_SETREADONLY auf schreibgeschützt setzen.
-
Wo für steht EM_?
Also der Tip hört sich gut an. Aber irgenwie kann ich ihn nicht umsetzen.Mein Code:
GetDlgItem(IDC_STATUS)->SendMessage(EM_SETREADONLY,1,0); bzw. GetDlgItem(IDC_STATUS)->SendMessage(EM_SETREADONLY,0,0);
Funktioniert nicht
-
Du sollst das doch nicht der Combobox schicken!
mit FindWindowEx(myCombo.m_hWnd,0,"edit",0) kriegst du das FensterHandle vom Edit. Dem Edit sollst du dann via ::SendMessage, EM_SETREADONLY schicken.
-
Ok *g*
hab geschafft:::SendMessage(*FindWindowEx(m_CtrlMitarbeiter.m_hWnd,0,"edit",0), EM_SETREADONLY, 1, 0);
nun sieht es gut aus ABER man kann es noch bedinen
der Bottun Links zum "Drop Down" muss auch noch grau und nicht funktionieren
-
Auch kein Problem
1. Combo disablen
2. Edit auf Read-Only setzen und enablen (tolles deutsch...)[ Dieser Beitrag wurde am 31.10.2002 um 18:25 Uhr von Nemesyzz editiert. ]
-
Ich komm mir bischen blöde vor.
Aber ich habs nicht verstanden *g*Also:
1. Combo disablen
m_CtrlComboBox.EnableWindow(false);2. Edit auf Read-Only setzen und enablen (tolles deutsch...)
::SendMessage(*FindWindowEx(m_CtrlComboBox.m_hWnd,0,"edit",0), EM_SETREADONLY, 1, 0);...da hab ich wohl, wie so oft, was falsch verstanden *schäm*
-
Du musst noch EnableWindow für das Edit aufrufen! => "und enablen"
btw: Wieso hast du bei FindWindow einen Stern davor?
-
du meinst also
m_CtrlComboBox.EnableWindow(false); ::SendMessage(*FindWindowEx(m_CtrlComboBox.m_hWnd,0,"edit",0), EM_SETREADONLY, 1, 0); m_CtrlComboBox.EnableWindow(true);
Geht nicht.
Der Stern ist weil FindWindowEx einen Pointer zurück gibt. Aber SendMessage will keinen Pointer.
-
Bei mit verursacht das einen Fehler wenn ich einen Stern davor hab.
Das EDIT enablen! Nich die Combobox!!!
Speicher den Rückgabewert von FindWindowEx in einer Variable und ruf
mit dieser SendMessage(...) und anschließend ::EnableWindow auf!