beim datagrid spaltenzahl manipulieren



  • So, wieder mal viele Stunden sinnlose Suche.
    Ich hoffe jemand kann mir den winzigkleinen Tip geben, den ich brauch.

    Habe ein Datagrid, das auf die DB zugreift und möchte die Spaltenanzahl manipulieren, kriegs aber einfach nicht hin. Standardmässig sind ja schon zwei da, das wars dann aber.

    Solche Tipps habe ich zwar gefunden:
    http://www.c-plusplus.net/forum/viewtopic.php?t=76618&highlight=datagrid+manuell
    kann aber mit diesen Klassen irgendwie nix anfangen. Denke mal, das liegt daran, dass ich mit VC++ 6.0 arbeite und nicht mit Net.

    Was tun?

    Danke im v o r r a u s



  • boar ist das frustrierend.
    im afx-testcontainer kann man das ja alles wunderbar einstellen.
    wenn ich wenigstens wüsste, wo die zwei standardspalten deklariert sind. ist aber auch nicht auffindbar.

    beim hierarchical flexgrid kann man das ja alles super einstellen. gibt es da vielleicht ne einfache möglichkeit an schreibrechte ranzukommen?



  • liebe moderatoren, liebe mfc-viel-besser-als-ich-könner,
    kann mir denn keiner irgendetwas sagen?
    hab ich mich unklar ausgedrückt?
    ist es zu leicht?



  • hi, bin im mom noch auf der arbeit, und kann leider noch nicht, bin aber ca.
    22:30 daheim und schau dann mal nach. ich glaube das hatte ich schonmal gemacht.



  • hallo, hab mal nachgeschaut...
    meinst du sowas hier?

    m_deinemembervariable.InsertColumn(0,"Spalte1",LVCFMT_LEFT,25,-1);
    	m_deinemembervariable.InsertColumn(1,"Spalte2",LVCFMT_LEFT,100,-1);
    	m_deinemembervariable.InsertColumn(2,"Spalte3",LVCFMT_LEFT,170,-1);
    	m_deinemembervariable.InsertColumn(3,"Spalte4",LVCFMT_LEFT,300,-1);
    	m_deinemembervariable.InsertColumn(4,"Spalte5",LVCFMT_LEFT,150,-1);
    


  • Genau so etwas suche ich.
    Leider ist InsertColumn kein Element von CDatagrid.

    Wie gesagt, ich arbeite mit VC++ 6.0 und habe ganz einfach ein DataGrid mit seinen Wrapper-Klassen eingefügt (Microsoft DataCombo Control, version 6.0 (OLEDB)).

    Folgende Memberfunktionen hat CDatagrid:

    long GetAddNewMode();
    	BOOL GetAllowAddNew();
    	void SetAllowAddNew(BOOL bNewValue);
    	BOOL GetAllowArrows();
    	void SetAllowArrows(BOOL bNewValue);
    	BOOL GetAllowDelete();
    	void SetAllowDelete(BOOL bNewValue);
    	BOOL GetAllowRowSizing();
    	void SetAllowRowSizing(BOOL bNewValue);
    	BOOL GetAllowUpdate();
    	void SetAllowUpdate(BOOL bNewValue);
    	long GetAppearance();
    	void SetAppearance(long nNewValue);
    	long GetApproxCount();
    	unsigned long GetBackColor();
    	void SetBackColor(unsigned long newValue);
    	VARIANT GetBookmark();
    	void SetBookmark(const VARIANT& newValue);
    	long GetBorderStyle();
    	void SetBorderStyle(long nNewValue);
    	CString GetCaption();
    	void SetCaption(LPCTSTR lpszNewValue);
    	short GetCol();
    	void SetCol(short nNewValue);
    	BOOL GetColumnHeaders();
    	void SetColumnHeaders(BOOL bNewValue);
    	BOOL GetCurrentCellModified();
    	void SetCurrentCellModified(BOOL bNewValue);
    	BOOL GetCurrentCellVisible();
    	void SetCurrentCellVisible(BOOL bNewValue);
    	BOOL GetDataChanged();
    	void SetDataChanged(BOOL bNewValue);
    	LPUNKNOWN GetDataSource();
    	void SetRefDataSource(LPUNKNOWN newValue);
    	CString GetDataMember();
    	void SetDataMember(LPCTSTR lpszNewValue);
    	float GetDefColWidth();
    	void SetDefColWidth(float newValue);
    	BOOL GetEditActive();
    	void SetEditActive(BOOL bNewValue);
    	BOOL GetEnabled();
    	void SetEnabled(BOOL bNewValue);
    	CString GetErrorText();
    	COleFont GetFont();
    	void SetRefFont(LPDISPATCH newValue);
    	unsigned long GetForeColor();
    	void SetForeColor(unsigned long newValue);
    	VARIANT GetFirstRow();
    	void SetFirstRow(const VARIANT& newValue);
    	COleFont GetHeadFont();
    	void SetRefHeadFont(LPDISPATCH newValue);
    	float GetHeadLines();
    	void SetHeadLines(float newValue);
    	long GetHWnd();
    	long GetHWndEditor();
    	short GetLeftCol();
    	void SetLeftCol(short nNewValue);
    	long GetMarqueeStyle();
    	void SetMarqueeStyle(long nNewValue);
    	BOOL GetRecordSelectors();
    	void SetRecordSelectors(BOOL bNewValue);
    	BOOL GetRightToLeft();
    	void SetRightToLeft(BOOL bNewValue);
    	short GetRow();
    	void SetRow(short nNewValue);
    	long GetRowDividerStyle();
    	void SetRowDividerStyle(long nNewValue);
    	float GetRowHeight();
    	void SetRowHeight(float newValue);
    	long GetScrollBars();
    	void SetScrollBars(long nNewValue);
    	short GetSelEndCol();
    	void SetSelEndCol(short nNewValue);
    	long GetSelLength();
    	void SetSelLength(long nNewValue);
    	long GetSelStart();
    	void SetSelStart(long nNewValue);
    	short GetSelStartCol();
    	void SetSelStartCol(short nNewValue);
    	CString GetSelText();
    	void SetSelText(LPCTSTR lpszNewValue);
    	short GetSplit();
    	void SetSplit(short nNewValue);
    	BOOL GetTabAcrossSplits();
    	void SetTabAcrossSplits(BOOL bNewValue);
    	long GetTabAction();
    	void SetTabAction(long nNewValue);
    	CString GetText();
    	void SetText(LPCTSTR lpszNewValue);
    	short GetVisibleCols();
    	short GetVisibleRows();
    	BOOL GetWrapCellPointer();
    	void SetWrapCellPointer(BOOL bNewValue);
    	CStdDataFormatsDisp GetDataFormats();
    	CPicture CaptureImage();
    	void ClearSelCols();
    	void ClearFields();
    	short ColContaining(float X);
    	CColumns GetColumns();
    	VARIANT GetBookmark(long RowNum);
    	void HoldFields();
    	void ReBind();
    	void Refresh();
    	VARIANT RowBookmark(short RowNum);
    	short RowContaining(float Y);
    	float RowTop(short RowNum);
    	void Scroll(long Cols, long Rows);
    	CSelBookmarks GetSelBookmarks();
    	short SplitContaining(float X, float Y);
    	CSplits GetSplits();
    

    Die einzige Funktion die nach was aussieht ist SetCol, doch die sagt nur, welche Spalte markiert sein soll.

    😞



  • ich hab die lösung für dich gefunden (glaub ich) 😉
    Schaust du mal hier:

    http://www.it-faq.pl/mskb/225/065.HTM

    Hau rein und sag bescheid obs geklappt hat,

    vg, Marco!



  • Das ist die Lösung, die ich gesucht hab.
    Ca. eine Stunde bevor ich das hier gelesen hab, bin ich zwar mit Hilfe eines Freundes doch noch darauf gekommen, aber trotzdem: danke danke danke.

    Die Seite beantwortet auch noch eine andere Frage:

    Microsoft DataGrid version 6.0 does not support modifications to the columns of Grid at design time when using it in Visual C++.

    Note that the "Edit" option for making changes to the columns of DataGrid at design time is absent. This option is available in Visual Basic 6.0.

    Echt traurig, aber war.



  • No problem, u r welcome.
    bin ja schliesslich auch froh wenn mir mal geholfen wird 😃


Anmelden zum Antworten