MFC GridCtrl using DDX

DonCube

Mitglied
Hi @all,
nachdem ich mir das mit dem GridCtrl auf Anregung von euch nochmal angesehen habe, habe ich mich entschieden die fertige Version von Chris Maunder auf http://www.codeproject.com/miscctrl/gridctrl.asp zu nehmen. Das erspart mir viel Zeit und sonst werde ich mit dem Project niemals in der vorgegebenen Zeit fertig.

Das einzigste was mich nun irritiert sind seine Instruktionen. Hier der genaue Abschnitt:
The underlying class of the grid control is CGridCtrl which is derived from CWnd. To use it, either use the MS Visual C++ dialog editor to place a custom control on a dialog, and enter "MFCGridCtrl" (no quotes) as the Class name. To subclass the control using the DDX mechanism (this will be done by default by the ClassWizard) use the DDX_GridControl function instead of the DDX_Control function (just manually change the ClassWizard entry). This ensures your control is correctly registered as a drop target and avoids some weird win95 issues.

Also soweit so gut. Custom Control eingefügt. Dann rechtsklick Add Class. Nun kommts aber ich habe keine Ahnung wie ich das mit der Subclass hinbekommen sollen. Denn der Wizard bietet dazu keinerlei Funktion. Habe ein wenig was über DDX gelesen, aber noch nicht tiefer mit beschäftigt. Leide also diesbezüglich vielleicht noch unter Unwissenheit. Hoffe das sich die Frage nicht als absolut idiotisch entpuppt.

Vielleicht wißt ihr weiter. Ich möchte eine Eingabetabelle in einem Dialog haben.

Gruß
DonCube

[EDIT] Aufgrund eines Fehlers bei der Übertragung ist der Beitrag zweimal gesendet worden. Bitte um Löschung des ersten. Zwei Forenbeiträge sind nicht wirklich nötig. War keine Absicht.
 
Zuletzt bearbeitet:
Da wartet man extra mit dem Post zwei tage weil man denkt man löst es selbst und schafft es nicht. Tja und nach dem Post hatte ich dann die Lösung.

Code:
void CDialog1::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_NAMEPLANT, m_nameOfPlant);
	DDX_GridControl(pDX, IDC_GRID, *m_pGridCtrl);               // Die Verbindung des Custom Control zum eigenltich Grid fehlte.
}

Allerdings würde mich immer noch interessieren was genau DDX_Control() ist.
Wer kann mir die Frage beantworten? DDX_GridControl wird lediglich umgemünzt auf DDX_Control.


Zweite Frage: Ich habe immer noch eine graue Custom Control im Vordergrund über der Tabelle. Wenn ich aber Zellen anklicke verschwindet sie nach und nach. Vermutung: Grafikfehler...View sollte neu gezeichnet werden..oder sowas in der Art.


Gruß
DonCube
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück