VIEWEX サンプル:複数のビュー、スクロール ビュー、および分割ウィンドウを示します
VIEWEX サンプルでは、次の内容を示します。
静的な分割ウィンドウ。ペインの順序と番号は固定です。通常、ペインのビュー クラスは異なります。
フォーム ビュー (CFormView)。同じドキュメントのほかのビューと一致します。
ダイアログ データ エクスチェンジ (DDX: Dialog Data Exchange)。特に、オプション グループ ボタンのデータ用です。
VIEWEX のドキュメントは単純です。 データは文字列と色で構成されます。
セキュリティに関するメモ |
---|
このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。 |
サンプルとそのインストール手順を取得するには
Visual Studio のサンプルにアクセスするには
[ヘルプ] メニューの [サンプル] をクリックします。
既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。
サンプルのビルドと実行
VIEWEX サンプルをビルドおよび実行するには
ソリューション viewex.sln を開きます。
[ビルド] メニューの [ビルド] をクリックします。
でデバッグ メニューの、[デバッグなしで開始 をクリックします。
最初に VIEWEX を実行すると、[新規] ダイアログ ボックスが表示されます。ここでは、表示されるドキュメント ウィンドウの種類を選択します。New
単純なテキスト ウィンドウの中央に、現在の色を使用して、文字列を表示します。
入力フォーム ビュー で、エディット コントロール内の文字列を変更したり、ラジオ ボタン グループから選択すると、色を変更するフォーム ( CFormView) を提供します。
分割フレーム 単純なテキストとフォームの入力の両方で、分割ウィンドウの 2 つのサイド バイ サイド ペインに表示します。 入力フォームで文字列 (文字単位) または色を変更すると、変更内容は、自動的に文字列表示ビューに反映されます。
3 方向分割フレーム 入力フォームの 1 つの分割ウィンドウのウィンドウ領域に表示されます。 その他の作業ウィンドウに 2 つの subpanes、分割バーによって分かれています。上部のサブペインする単純なテキスト表示; 表示します。下位のサブペインをカラー表示されます。 カラー ビューは全体が現在の色で塗りつぶされています。
文字列を変更するには、エディット コントロールに入力フォームを使用して 変更データ編集 メニューをクリックします。
また、同時に複数のドキュメントを表示することもできます。 ただし、例を簡単にするために、ドキュメントを保存したり再び開いたりすることはできません。また、上に示した複数のウィンドウに同じドキュメントを表示することもできません。
静的な分割ウィンドウ
VIEWEX では、MDI 子ウィンドウが OnCreateClient をオーバーライドすることによってクライアント領域に 2 分割ウィンドウを作成します。 3 分割の場合、VIEWEX では、2 分割ウィンドウの右側のペインをさらに 2 分割します。
VIEWEX は、動的な分割ウィンドウの代わりに静的な分割ウィンドウを作成するときに、CSplitterWnd::CreateStatic ではなく CSplitterWnd::Create を呼び出します。 VIEWEX の分割ウィンドウの各ペインは、ビュー クラスが異なります。 VIEWEX は CSplitterWnd::CreateView を呼び出して、各ペインの CView の派生クラスを指定します。 最初のウィンドウの場合、VIEWEX ビュー クラスの特定に渡される OnCreateClientm_pNewViewClassCCreateContext のメンバーにする、ドキュメント テンプレート オブジェクトを使用します。 その他のペインの場合、VIEWEX はビューの RUNTIME_CLASS を指定します。
フォーム ビュー
CInputView フォーム ビューの同期を示したものユーザー データ、フィールドのいずれかで入力すると他のビューを使うと、ので変更すぐに他のビューで反映されます。 CInputView マッピング ON_EN_CHANGEON_BN_CLICKEDOnDataChange 中央メッセージ ハンドラーをコントロールのすべてでこれを達成します。 OnDataChange CView::UpdateData のメンバー変数を画面からデータを転送する CInputView を呼び出して、その他のビューの変更について通知するために、ドキュメントの UpdateAllViews を呼び出します。
ダイアログ データ エクスチェンジ (DDX)
VIEWEX の CInputView ダイアログ データ エクスチェンジ (DDX) のラジオ ボタンのデータをグループ化する方法を示します。 Iputvw.h では、マップ、オプション グループ内の最初のボタンのみされていることにメンバー変数 m_iColorCInputView::DoDataExchange に注意してください。 m_iColor どのラジオ ボタンが選択されたかを表す 0 から始まる序数値 (int) です。
Keywords
このサンプルでは、次のキーワードを使用します。
CDC::FillRect; CDialog::DoModal; CDocument::OnNewDocument; CDocument::UpdateAllViews; CFrameWnd::LoadFrame; CFrameWnd::OnCreateClient; CFrameWnd::SetActiveView; CObject::Serialize; CRect::Height; CRect::Width; CSplitterWnd::CreateStatic; CSplitterWnd::CreateView; CSplitterWnd::GetPane; CSplitterWnd::IdFromRowCol; CString::GetLength; CView::GetDocument; CView::OnActivateView; CView::OnDraw; CView::OnUpdate; CWinApp::AddDocTemplate; CWinApp::InitInstance; CWinApp::OnFileNew; CWnd::DoDataExchange; CWnd::GetClientRect; CWnd::OnMouseActivate; CWnd::ShowWindow; CWnd::UpdateData; CWnd::UpdateWindow; RGB; SetBkMode; SetTextAlign; SetTextColor; TextOut; max
注意
このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。