Tabellen in Visual C++ 5.0

Liebe Experten,

ich versuche in Visual C++ 5.0 eine Tabelle zu erzeugen, ähnlich einem Spreadsheet. Leider habe ich keine Ahnung, wie man das hinkriegen kann, da kein entsprechendes Control vorhanden ist.

Ich möchte dazu den Document/View Mechanismus verwenden. Ich habe dabei sowohl die CScrollView- als auch die CFrameView-Klasse ausprobiert, weiß aber nicht, wie ich die eigentliche Tabelle in dem View erzeugen sollt, so daß ich die Inhalte verändern kann. Die Größe der Tabelle ergibt sich erst zur Laufzeit.

Kann mir jemand einen Hinweis geben, wie man da vorgehen könnte oder weiß jemand, wo man ein entsprechendes Control herbekommt?

Danke schon einmal im Vorraus,

Daniel.

Grid ActiveX Methoden und Eigenschaften ansprechen
Liebe Experten,

ich bin bei meinem Problem etwas weiter gekommen. Ich habe das ActiveX-Element Grid (GRID32.OCX) gefunden, mit dem man eine Tabelle darstellen kann.

Jetzt komme ich aber nicht weiter. Ich möchte Eigenschaften dieses Controls ansprechen, aber ich weiß nicht, wie ich die Dispatch-ID bekomme. Das Beispiel aus der Hilfe ist leider fehlerhaft, da „OLECHAR FAR* szMember“ anscheinend nicht korrekt initialisiert wird.

Wer kann helfen? Sicherheitshalber habe ich das fehlerhafte Beispiel mal unten angefügt.

Danke schon mal im Vorraus,

Daniel.

HRESULT hresult;
IUnknown* punk;
IDispatch* pdisp;
OLECHAR FAR* szMember = (OLECHAR FAR*) „Cols“;
DISPID dispid;
DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};

// {A8C3B720-0B5A-101B-B22E-00AA0037B2FC}
static const CLSID CLSID_Grid = {
0xA8C3B720, 0x0B5A, 0x101B, { 0xB2, 0x2E, 0x00, 0xAA, 0x00, 0x37, 0xB2, 0xFC } };

// Initialize OLE DLLs.
hresult = OleInitialize(NULL);

// OLE function CoCreateInstance starts application using GUID.
hresult = CoCreateInstance(CLSID_Grid, NULL, CLSCTX_SERVER, IID_IUnknown, (void FAR* FAR*)&punk);

// Call QueryInterface to see if object supports IDispatch.
hresult = punk->QueryInterface(IID_IDispatch, (void **) &pdisp);

// Retrieve the dispatch identifier for the method.
// Use defaults where possible.
hresult = pdisp->GetIDsOfNames(IID_NULL, &szMember, 1,
LOCALE_USER_DEFAULT, &dispid);