2009-06-22 7 views
0

J'essaie d'utiliser la grille ultime de Code Project dans une boîte de dialogue mais la grille est invisible. M_Plist.AttachGrid (this, IDC_CREDENTIALS) renvoie true, mais le support de texte statique dans lequel la grille doit être affichée ne peut pas être vu et la grille n'est jamais affichée.Ultimate grid invisible

J'utilise exemple le code d'ici 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

J'ai installé la dernière mise à jour UltimateGrid72_Src_Update03.zip et Im en utilisant VS2008 SP1.

... Merci

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

    MyCug m_PList; 

m_Plist.AttachGrid(this, IDC_CREDENTIALS); 

} 

Répondre

3

Je n'ai pas utilisé Ultimate Grid moi-même. Cependant, en regardant le code que vous avez posté, je peux voir qu'il y a probablement un problème: vous déclarez une instance de "MyCug" sur la pile, puis l'attachez, mais cette instance basée sur la pile sera détruite dès que La méthode OnInitDialog() existe. Ce que vous devez faire est de mettre la déclaration de "MyCug m_PList;" en tant que membre de la classe de dialogue, de sorte que la durée de vie de l'objet de grille soit la même que la durée de vie de la boîte de dialogue.

+0

Vous étiez sur place. Cela fonctionne maintenant beaucoup de mercis .. – Canacourse

0

Je ne sais pas pourquoi votre grille ne montre pas, les choses à rechercher sont correctement est de le charger à partir du modèle de dialogue, et est-il visible? Vous pouvez utiliser spy ++ (un outil distribué avec Visual Studio) pour voir quelles fenêtres sont réellement créées dans votre boîte de dialogue, où elles sont et où les drapeaux et les styles sont définis. Après avoir créé et joint la grille, ajoutez-vous des lignes et des colonnes comme défini par les exemples?

0

Sinon, il n'y aura rien à voir.

Vous aurez besoin du code suivant dans MyCug :: OnSetup():

void MyCug::OnSetup(){ 

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

} 

C'est du tutoriel dans la version 7.2. J'ai beaucoup utilisé UG, et n'ai aucun problème avec VS2008. Mais je crée moi-même toute ma grille, je n'utilise pas de gabarits de dialogue.

+0

Oui, je le faisais. – Canacourse

+0

OK, lorsque vous appelez Créer pour votre grille, la marquez-vous VISIBLE? est ici plus de code constructeur de ma grille MyCug :: MyCug (id int, CWnd * parent) { CreateGrid (WS_CHILD | WS_VISIBLE, wp.rcNormalPosition, parent, id); } –