Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

ATL/WTLプログラミング 4:ダイアログリサイズ

ATL/WTLを利用したVisual C++のWindowsプログラミング

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/01/23 12:00

Windowsアプリケーションを作成するためのC++クラスライブラリといえば、Microsoftが提供するMFCが有名ですが、同社が提供するライブラリATLを利用して作成することもできます。本稿では、ダイアログウィンドウのリサイズについて解説します。

目次

はじめに

 前回はフレームウィンドウとビューウィンドウを作成しました。今回はダイアログリサイズについて説明します。

 なお、第1回第2回第3回ではサンプルプログラムをWin32 Applicationプロジェクトとしてビルドしましたが、今回からATL/WTL AppWizardを使用します。

対象読者

 ATL/WTLによるWindowsプログラミングに興味があり、C++やWin32APIによるWindowsプログラミングの基本的な知識がある方。

必要な環境

 サンプルはVisual C++ 6.0で作成し、Windows2000で動作確認しています。

ダイアログリサイズ

 WTLのCDialogResizeは、その名のとおりダイアログウィンドウのリサイズに関連する機能をサポートします。CDialogResizeをダイアログの基底クラスに追加すると、ダイアログのサイズを変更するたびに、その子コントロールの位置やサイズも自動的に調整されるダイアログを作成することができます。

 本稿ではCDialogResizeを使用したサンプルプログラムを作成します。このプログラムは、デスクトップに表示されている任意のInternet Explorerのウィンドウサイズを変更します。

サンプルプログラム
サンプルプログラム

 [幅]および[高さ]に値を入力し、リストビューのチェックボックスにチェックを入れて[適用]ボタンを押すと、チェックを入れたIEウィンドウの幅と高さが[幅][高さ]に入力した値に変更されます。なお、このプログラムのリストビューは、デフォルトでソート機能が装備されているWTLの「ソートリストビュー(CSortListViewCtrl)」です。

 このサンプルプログラムのウィンドウサイズを変更すると、次のようにコントロールのサイズや位置が自動的に調整されます。

サンプルプログラムリサイズ後
サンプルプログラムリサイズ後

ATL/WTL AppWizard

 まず、新規プロジェクトを作成します。今回からATL/WTL AppWizardを利用するので、第1回の手順に従ってATL/WTL AppWizardをインストールし、プロジェクトの新規作成で[ATL/WTL AppWizard]を実行します。なお、本稿ではVisual C++ 6.0用のATL/WTL AppWizardを使用します。

 [ATL/WTL AppWizard]を実行すると、ウィザードの1ページ目が表示されます。

ATL/WTL AppWizard 1/2
ATL/WTL AppWizard 1/2

 ウィザードの1ページ目では以下のアプリケーション形式を選択することができます。

Select application type
[SDI Application]SDI形式のアプリケーション
[Multiple Threads SDI]マルチスレッドで新しいウィンドウを開くことのできる
SDI形式のアプリケーション
[MDI Application]MDI形式のアプリケーション
[Dialog Based]モードレスダイアログ形式のアプリケーション
([Modal Dialog]にチェックを入れるとモーダルダイアログ)

 今回はモーダルダイアログをベースとするため、[Dialog Based]を選択して[Modal Dialog]にチェックを入れます。

 さらにウィザードの1ページ目では以下のオプションを選択することができます。

Select project options
[Enable ActiveX Control Hosting]ActiveXコントロールを使用可能にする
[Create as a COM Server]COMサーバにする
[Generate .CPP Files]拡張子.cppファイルを生成する
[Add Common Controls Manifest]コモンコントロールマニフェストを追加する

 [次へ]ボタンを押すとウィザードの2ページ目が表示されます。

ATL/WTL AppWizard 2/2
ATL/WTL AppWizard 2/2

 今回は1ページ目で[Dialog Based]を選択したのでどのオプションも選択不可ですが、1ページ目で[SDI Application]などを選択すると、以下のオプションを選択することができます。

Select UI features
[Toolbar]ツールバーを追加する
[Rebar]リバーを追加する
[Command Bar]コマンドバー(IE風のメニューバー)を追加する
[Status Bar]ステータスバーを追加する
[Use a view window]ビューウィンドウを使う
[Host ActiveX Controls]ActiveXコントロールを使用可能にする

 [Use a view window]を選択した場合は以下のビューウィンドウ形式が選択できます。

View type
[Generic window]通常のウィンドウ
[Form (Dialog based)]フォーム(ダイアログベース)
[List Box]リストボックスコントロール
[Edit]エディットコントロール
[List View]リストビューコントロール
[Tree View]ツリービューコントロール
[Rich Edit]リッチエディットコントロール
[HTML Page]ウェブブラウザコントロール

 最後に[終了]ボタンを押してプロジェクトのスケルトン(雛形)を生成します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:ATL/WTLを利用したVisual C++のWindowsプログラミング
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5