2009-06-22 5 views
0

Ich versuche das ultimative Gitter von Code Project in einem Dialogfeld zu verwenden, aber das Gitter ist unsichtbar.Ultimate grid invisible

m_Plist.AttachGrid (dies IDC_CREDENTIALS) gibt true zurück, aber der Platzhalter für den statischen Text, in dem das Raster angezeigt werden soll, kann nicht gesehen werden, und das Raster wird nie angezeigt.

I Probe bin mit dem Code von hier http://www.codeproject.com/KB/MFC/UltimateGrid_Start.aspx?display=PrintAll&fid=452565&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2629959&fr=51#Using_the_Grid_in_a_CDialog

ich das neueste Update UltimateGrid72_Src_Update03.zip und Im installiert haben VS2008 SP1 verwenden.

Dank ...

BOOL CCredentials::OnInitDialog() 
{ 
    CDialog::OnInitDialog(); 

    MyCug m_PList; 

m_Plist.AttachGrid(this, IDC_CREDENTIALS); 

} 

Antwort

3

Ich habe Ultimate Grid nicht selbst verwendet. Wenn ich jedoch den Code sehe, den Sie gepostet haben, sehe ich, dass es wahrscheinlich ein Problem gibt: Sie deklarieren eine Instanz von "MyCug" auf dem Stack und hängen sie dann an, aber diese stackbasierte Instanz wird zerstört, sobald die OnInitDialog() -Methode existiert. Was Sie tun müssen, ist die Deklaration von "MyCug m_PList;" als Mitglied der Dialogklasse, so dass die Lebensdauer des Grid-Objekts der Lebensdauer des Dialogs entspricht.

+0

Sie waren genau richtig. Es funktioniert jetzt vielen Dank .. – Canacourse

0

Ich weiß nicht, warum das Raster angezeigt wird nicht, die Dinge für sollen aussehen wird es richtig von der Dialogvorlage geladen, und es ist sichtbar? Sie können mit spy ++ (einem Tool, das mit Visual Studio vertrieben wird) sehen, welche Fenster in Ihrem Dialog tatsächlich erstellt werden, wo sie sich befinden und welche Flags und Stile für sie festgelegt sind.

0

Nachdem Sie das Raster erstellt und angehängt haben, fügen Sie Zeilen und Spalten hinzu, wie in den Beispielen definiert?

Sonst wird es nichts zu sehen geben.

Sie werden den folgenden Code in MyCug müssen :: OnSetup():

void MyCug::OnSetup(){ 

    //*******Set the Rows and Columns 
    SetNumberCols(10); 
    SetNumberRows(10); 

} 

, die in der Version 7.2 aus dem Tutorial ist. Ich habe UG ausgiebig benutzt und habe keine Probleme mit VS2008. Aber ich erstelle alle meine Gitter selbst, ich benutze keine Dialogvorlagen.

+0

Ja, ich tat das. – Canacourse

+0

OK, wenn Sie Create für Ihr Raster aufrufen, markieren Sie es sichtbar? Hier ist mehr Code mein Gitter Konstruktor MyCug :: MyCug (int id, CWnd * parent) { CreateGrid (WS_CHILD | WS_VISIBLE, wp.rcNormalPosition, Eltern, id); } –

Verwandte Themen