最近、OdaBimAppサンプルアプリケーションのグラフィック表示オプションダイアログが改善されました。ダイアログを閉じずに、選択したスタイルを現在のビューに適用するために「適用」をクリックできるようになりました。
OKボタンのイベントハンドラーは、ビジュアルスタイルの更新を実行し、親ウィンドウに戻ります。
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);
}
親ウィンドウの以下の関数は、OKボタンとキャンセルボタンのアクションを処理し、次のように変更されました。
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
}
}