最近,OdaBimApp 示例应用程序中的图形显示选项对话框得到了改进。您现在可以单击“应用”将选定的样式应用到当前视图,而无需关闭对话框。
“确定”按钮的事件处理程序执行视觉样式的更新并返回到父窗口:
void ViewDisplayStyleDialog::OnBnClickedOk()
{
UpdateData(TRUE);
updateDBViewVisualStyle();
CDialog::OnOK();
m_nModalResult = IDOK;
}
取消按钮的事件处理程序执行返回父窗口的操作:
void ViewDisplayStyleDialog::OnBnClickedCancel()
{
CDialog::OnCancel();
m_nModalResult = IDCANCEL;
}
应用按钮的事件处理程序执行视觉样式更新,并向父窗口发送消息以更新渲染:
void ViewDisplayStyleDialog::OnBnClickedApply()
{
UpdateData(TRUE);
updateDBViewVisualStyle();
((OdaBimExViewer*)m_pParentWnd)->invalidateDevice();
m_pParentWnd->SendMessage(WM_PAINT);
}
父窗口的以下函数处理“确定”和“取消”按钮的操作,并已更改为:
void OdaBimExViewer::OnViewGraphicDisplayOptions() {
OdBmDBViewPtr pDBView = getActiveDbView();
ViewDisplayStyleDialog viewDisplayStyleDialog(pDBView, this);
viewDisplayStyleDialog.DoModal();
int modalResult = viewDisplayStyleDialog.GetModalResult();
if (modalResult == IDOK) {
m_pDevice->invalidate();
PostMessage(WM_PAINT);
}
else if (modalResult == IDCANCEL) {
// do nothing
}
}