CMFCPropertyGridCtrl最后一项未绘制?

时间:2011-09-28 22:48:05

标签: mfc mfc-feature-pack

我在选项对话框中使用了CMFCPropertyGridCtrl。我的选项对话框类中有一个名为InitPropertyGrid()的方法。此方法清除所有属性并填充CMFCPropertyGrid对象(使用属性值的自定义设置对象)并将它们附加到网格。

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

第一次:

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);

1 个答案:

答案 0 :(得分:0)

我发现只需在代码末尾调用myPropertyGrid.ExpandAll(TRUE)来初始化属性网格(我的InitPropertyGrid())就可以消除这个问题。这似乎迫使所有属性扩展。

相关问题