連載:VB 6ユーザーのための
|
|
.NET Frameworkの限界を超える?!
1年と少しの間にわたって続けてきたこの連載も、今回で一応の区切り。最終回となった。これまで、Visual Basic 2005(以下、VB 2005)の新機能を中心に、プログラミングの基礎からクラスの利用、ユーザー・コントロールの作成、マルチスレッド・プログラム、データベースの利用など、重要と思われることを一通り見てきた。
ただ、主にビジネス・アプリケーションを念頭に置いてきたので、サンプル・プログラムはすべてVB 2005と.NET Frameworkのクラス・ライブラリを利用すれば作成できるものであった。今回は最終回にふさわしく、その限界を超えるようなプログラムを作ってみたい。.NET Frameworkのクラス・ライブラリだけではできないことというと、Win32 APIが思い浮かぶ人もいるかと思うが、まさにそのとおり。ちょっと便利なユーティリティ・プログラムの作成を通して、Win32 APIの基本的な呼び出し方について見ていくこととする。
Visual Basic 6.0(以下、VB 6)でWin32 APIを利用していた人にはわざわざ説明することでもないが、APIとは「Application Programming Interface」の略で、簡単にいってしまえばオペレーティング・システムの機能をプログラムから利用できるように公開したもの、といった意味。Win32 APIは(32bit)WindowsのAPIなので、これを利用すれば、Windowsのほとんどすべての機能を呼び出せるというわけだ。
とはいえ、能書きばかり並べていてもイメージがわかないので、サンプル・プログラムを通して具体的にWin32 APIの呼び出し方を見てみよう。
サンプル・プログラム18 − ウィンドウのサイズを変更するプログラム
今回のサンプル・プログラムは、ウィンドウのサイズを変更するためのプログラム。当然のことながら、自分のウィンドウ・サイズを変えるだけなら簡単。それなら小学生にでもできる。このプログラムは、ほかのプログラムのウィンドウのサイズを変えるものである。
例えば、エクスプローラのウィンドウ・サイズをちょうど800×600ピクセルになるように変えることができる。ウィンドウの境界をドラッグして、ピクセル単位で正確にサイズをそろえることは極めて難しいが、このプログラムを使えば簡単。とりわけ、スクリーンショットを撮るときに便利だ。
実は、このプログラムは、私が10年前にVisual C++(とMFC、Win32 API)で作ったプログラムの焼き直しなのだが、書籍や雑誌、論文などの図版作成にとても役に立っている。10年間使い続けたプログラムというのも珍しいが、恐らくこれからの10年、さらにはその先も生き残るであろう、便利なプログラムだ。
図1に示したのが、プログラムの実行画面だ。[固定サイズ]グループにあるラジオボタンをクリックするか、[フリーサイズ]グループで直接、幅と高さを入力すれば、ウィンドウのサイズが指定できる。続いて、[サイズ変更]ボタンをクリックした後、ほかのウィンドウをクリックすれば、クリックされたウィンドウのサイズが一瞬にして変わる。
図1 ウィンドウのサイズを変更するプログラム | |||
|
では、フォームのデザインから見ていこう。
■フォームのデザイン
フォームのデザインには難しいところはない。図1のプログラムの実行例に従って、コントロールを配置していけばよい。
注意すべき点としては、VB 6でフレーム(Frame)と呼ばれていたコントロールの代わりにグループボックス(GroupBox)コントロールを使うこと、オプションボタン(OptionButton)コントロールの代わりに、ラジオボタン(RadioButton)コントロールを使うことぐらいだ。
図2がコントロールを配置した画面、表1が設定すべき主なプロパティである。このプログラムでは、プログラムの起動時に[800x600]のラジオボタン(rbSize2)をオンにしておくことにするので、rbSize2のCheckedプロパティをTrueにしておこう。
図2 フォームのデザイン |
フォームにグループボックス・コントロールを2つとボタン・コントロールを2つ配置する。1つ目のグループボックス・コントロールの中にラジオボタン・コントロールを4つ配置し、2つ目のグループボックス・コントロールの中にラベル・コントロールを2つ、テキストボックス・コントロールを2つ配置する。 |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表1 コントロールに設定するプロパティとその値の一覧 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
赤丸数字は図2に示した各コントロールに対応している。 |
なお、タブ・オーダーは、上から下、左から右へと順に操作できるように設定しておく。[表示]メニューの[タブ オーダー]を選択し、フォーム上のコントロールを順にクリックしていきタブ・オーダーを設定しておこう。
図3を見れば一目で分かるように、VB 2005ではコントロールの階層を反映したようなタブ・オーダーが簡単に設定できるようになっている。
図3 タブ・オーダーの設定 |
例えば、[固定サイズ]というグループボックスの中には、4つのラジオボタンがある(グループボックスがコンテナになっている)。このような階層を反映したようなタブ・オーダーの番号が付けられている。 |
INDEX | ||
VB 6ユーザーのためのこれならマスターできるVB 2005超入門 | ||
第12回 VB 2005でWin32 APIを利用する | ||
1.サンプル・プログラム18 − ウィンドウのサイズを変更するプログラム | ||
2.プログラムの考え方とWin32 APIの宣言 | ||
3.マウスのャプチャとウィンドウのリサイズ | ||
4.フレーム・ウィンドウのハンドル取得 | ||
「これならマスターできるVB 2005超入門」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
- - PR -