ScrollBar を入力デバイスとして使用する
スクロール バーは通常、TextBox またはウィンドウとともに使用されますが、入力デバイスとしても使用できる場合があります。 ScrollBar コントロールは現在位置を比例的に示すため、音量の制御や画像の色の調整など、プログラム入力の制御に単独で使用できます。 HScrollBar (水平) コントロールと VScrollBar (垂直) コントロールは独立しており、独自のイベント、プロパティ、メソッドのセットを持っています。 ScrollBar コントロールは、TextBox、ListBox、ComboBox、または MDI フォームにアタッチされた内部 ScrollBar とは異なります。 (TextBox および MDI フォームには ScrollBars プロパティがあり、コントロールにアタッチされた ScrollBars を追加または削除できます。)
Windows インターフェイス プロンプトは、入力デバイスとして ScrollBar の代わりに Slider コントロールをサポートするようになりました。スライダー コントロールの例については、Windows 95 のコントロール パネルを参照してください。 Visual Basic の Professional および Enterprise エディションには、Windows95 スタイルのスライダー コントロールが含まれています。
ScrollBar コントロールの詳細については、第 7 章「Visual Basic の標準コントロールの使用」を参照してください。
写真やグラフィックを表示するためのコントロール
Windows はグラフィカル ユーザー インターフェイスであるため、アプリケーション インターフェイスにグラフィック イメージを表示する方法は非常に重要です。 VisualBasic には、グラフィックス関連の操作を簡略化する 4 つのコントロール (PictureBox コントロール、Image コントロール、Shape コントロール、Line コントロール) が含まれています。
Image、Shape、Line コントロールは、軽量グラフィックス コントロールと呼ばれることもあります。必要なシステム リソースが少ないため、PictureBox コントロールよりも表示が速く、PictureBox で使用できるプロパティ、メソッド、イベントのサブセットが含まれています。各コントロールは特定の目的を果たします。
PictureBox コントロールの使用
PictureBox コントロールの主な機能は、ユーザーに画像を表示することです。実際に表示される画像は、Picture プロパティによって決まります。 Picture プロパティには、表示されている画像のファイル名 (およびオプションのパス名) が含まれます。
フォームオブジェクトにはPicture プロパティもあります。このプロパティを設定すると、フォームの背景に画像を直接表示できます。
実行時に画像を表示または置換するには、関数 LoadPicture を使用して Picture プロパティを設定します。画像ファイル名とオプションのパス名を指定すると、LoadPicture 関数が画像のロードと表示の詳細を処理します。
picMain.Picture=LoadPicture(VANGOGH.BMP)
PictureBox コントロールには AutoSize プロパティがあり、このプロパティが True に設定されている場合、PictureBox は表示される画像に合わせてサイズを自動的に調整できます。 AutoSize プロパティを True に設定して PictureBox を使用する場合は、フォームのデザイン時に特に注意する必要があります。画像のサイズはフォーム上の他のコントロールを考慮せずに変更されるため、他のコントロールが上書きされるなど、予期しない結果が生じる可能性があります。設計時に各画像を読み込んでこの現象が発生するか確認してください。
PictureBoxをコンテナとして使用する
Picturebox コントロールは、他のコントロールのコンテナとしても使用できます。 Frame コントロールと同様に、PictureBox コントロールの上に他のコントロールを追加できます。これらのコントロールは PictureBox の移動に合わせて移動します。また、それらの Top プロパティと Left プロパティは PictureBox に対して相対的なものであり、フォームとは何の関係もありません。
PictureBox コンテナの一般的な用途は、ToolBar または StatusBar です。画像コントロールをボタンとしてこれらのコンテナに配置したり、ラベルを追加してステータス情報を表示したりできます。 Align プロパティを Top、Bottom、Left、または Right に設定すると、PictureBox がフォームの端に固定されます。図 3.16 は、Align プロパティが Bottom に設定された PictureBox を示しています。これには、ステータス情報の表示に使用できる 2 つの Label コントロールが含まれています。
PictureBox のその他の用途
PictureBox コントロールには、PictureBox を他の目的で使用できるようにするいくつかの方法があります。例: PictureBox を、描画や印刷、あるいはテキスト、グラフィック、さらには単純なアニメーションの表示ができる空のキャンバスと考えてください。
PRint メソッドを使用すると、テキストをプリンタに出力するかのように PictureBox コントロールに出力できます。 Print メソッドによるテキスト入力の特性を制御するフォント プロパティがいくつかあります。Cls メソッドは出力をクリアします。
PictureBox でグラフィックを描画するには、Circle、Line、Point、および Pset メソッドを使用できます。 DrawWidth、FillColor、FillStyle などのプロパティを使用すると、グラフィックスの外観をカスタマイズできます。
PaintPicture メソッドを使用して、ピクチャ コントロール内で画像を移動し、複数の異なる画像間を移動します。
素早い変更によりアニメーションを作成できます。
PictureBox コントロールの詳細については、第 7 章「Visual Basic の標準コントロールの使用」を参照してください。
軽量グラフィックスコントロール
Image、Shape、および Line コントロールはすべて軽量グラフィック コントロールとみなされます。つまり、これらは PictureBox のプロパティ、メソッド、およびイベントのサブセットのみをサポートします。したがって、PictureBox コントロールよりも必要なシステム リソースが少なく、読み込みが速くなります。
PictureBox の代わりに Image コントロールを使用する
Image コントロールは PictureBox コントロールに似ていますが、画像を表示するためにのみ使用されます。他のコントロールのコンテナとして使用することはできません。また、PictureBox の高度なメソッドもサポートしません。 画像は、PictureBox に読み込まれるのと同じ方法で Image コントロールに読み込まれます。設計時に Picture プロパティをファイル名とパスに設定し、実行時に Loadpicture 関数を使用します。
Image コントロールのサイズ変更動作は、PictureBox のサイズ変更動作とは異なります。これにはStretchプロパティがあり、PictureBoxにはAutoSizeプロパティがあります。 AutoSize プロパティを True に設定すると、PictureBox のサイズが画像に応じて変更され、False に設定すると画像が切り取られます (画像の一部のみが表示されます)。 Stretch プロパティが False (デフォルト値) に設定されている場合、画像に応じて Image コントロールのサイズを変更できます。 Stretch プロパティを True に設定すると、Image コントロールのサイズに応じて画像のサイズが変更されます。
作品のサイズにより、画像が歪む可能性があります。
Image コントロールの詳細については、第 7 章「Visual Basic の標準コントロールの使用」を参照してください。
画像コントロールを使用して独自のボタンを作成する
Image コントロールは Click イベントも認識するため、コマンド ボタンが使用される場所ならどこでも使用できます。この方法を使用すると、タイトルの代わりに写真を使用したボタンを簡単に作成できます。 ToolBar は、いくつかの Image コントロールをグループ化し、画面上部 (通常は PictureBox 内) に水平に配置することによって、アプリケーション内に確立できます。
たとえば、TestButtons の例で示されている Image コントロールの場合、ユーザーはコマンド ボタンと同じように選択できます。フォームが最初に表示されるとき、コントロールには、Visual Basic のアイコン ライブラリにある 3 つの交通アイコンのいずれかが表示されます。 Image コントロールをクリックするたびに、異なるアイコンが表示されます (この例の動作バージョンについては、Controls.vbp サンプル アプリケーションの Button.frm を参照してください)。
デザイン中にフォームを見ると、実際には 3 つのアイコンがすべて積み重なって含まれていることがわかります。一番上の Image コントロールの Visible プロパティを False に変更すると、次の画像 (Visible プロパティが True の場合) が一番上に表示されます。
図 3.17 は、交通アイコン イメージ コントロール (Trffc10a.ico) を示しています。
Image コントロールの周囲に境界線を作成するには、BorderStyle プロパティを 1 (固定単一境界線) に設定します。
コマンド ボタンとは異なり、イメージ コントロールをクリックしても、押されたというアクションは表示されないことに注意してください。つまり、MouseDown イベントでビットマップが変更されない限り、押された「ボタン」はユーザーには見えません。
Image コントロールでのグラフィック イメージの表示の詳細については、第 7 章「Visual Basic の標準コントロールの使用」を参照してください。
Shape コントロールと Line コントロールを使用する
Shape および Line コントロールを使用して、フォームの表面にグラフィック要素を描画できます。これらのコントロールはイベントをサポートせず、表面の装飾にのみ使用されます。
Shape コントロールの外観を制御するプロパティがいくつかあります。 Shape プロパティを設定すると、Shape コントロールを長方形、正方形、楕円形、角丸長方形、または角丸正方形として表示できます。 BorderColor プロパティと FillColor プロパティを設定すると色を変更でき、BorderStyle、BorderWidth、FillStyle、および DrawMode プロパティで描画方法を制御します。 Line コントロールは Shape コントロールに似ていますが、線を描画するためにのみ使用されます。
Shape および Line コントロールの詳細については、第 7 章「Visual Basic の標準コントロールの使用」を参照してください。
画像アプリ
図 3.18 に示すフォームでは、Shape コントロール、PictureBox コントロール、および CommandButton コントロールの 4 つの Image コントロールを使用します。ユーザーがトランプのシンボルを選択すると、Shape コントロールがシンボルを強調表示し、対応する説明を PictureBox に表示します。この例の動作バージョンについては、Controls.vbp サンプル アプリケーションの Images.frm を参照してください。
次の表に、アプリケーション内のオブジェクトのプロパティ設定を示します。
->