SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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


  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

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

 なお、第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]ウェブブラウザコントロール

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

次のページ
スケルトン

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ATL/WTLを利用したVisual C++のWindowsプログラミング連載記事一覧

もっと読む

この記事の著者

So()

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/262 2006/05/25 10:14

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング