2011-09-28 72 views
0

我有一个CMFCPropertyGridCtrl,我在选项对话框中使用。我在我的选项对话框类InitPropertyGrid()中有一个方法。此方法清除任何属性并填充CMFCPropertyGrid对象(使用属性值的自定义设置对象)并将它们附加到网格。CMFCPropertyGridCtrl最后一项没有绘制?

当我第一次打开我的对话框时,所有属性都显示正确。但是,如果我然后关闭我的对话框并重新打开它,最后一个属性不会在屏幕上绘制。所有其他属性,通常得出:

首播时间:

enter image description here

所有后续时间:

enter image description here

正如你所看到的,加/减图标在两种情况下均显示减去以表明该部分扩大。当最后一个项目未显示时,单击+/-图标一次合同,一次展开导致最后一个项目正确显示。

注意当我关闭对话框时,我不会销毁它,只是重新显示它。然而,在调用对话框的ShowWindow之前,我调用InitPropertyGrid()(由UpdateToCurrentSettings调用)方法。

if(optionsDialog_ == NULL) 
{ 
    optionsDialog_ = new OptionsDialog(settings_, this); 
    optionsDialog_->Create(OptionsDialog::IDD, this); 
} 

optionsDialog_->UpdateToCurrentSettings(); 
optionsDialog_->ShowWindow(SW_SHOW); 

回答

0

我发现我可以简单地在那里我初始化属性网格(InitPropertyGrid()对我来说)代码的最后调用myPropertyGrid.ExpandAll(TRUE)解决这个问题。这似乎迫使所有的财产扩大。