Visual Basic 6 でリソースを作成して使用する方法
ジェッタプロダクション/ゲッティイメージズ
Visual Basic の学生がループ、条件ステートメント、サブルーチンなどについてすべて学習した後、次によく質問されることの 1 つは、「ビットマップ、wav ファイル、カスタム カーソル、またはその他の特殊効果を追加するにはどうすればよいですか?」というものです。 'ひとつの答えは リソース ファイル . Visual Studio リソース ファイルを使用してファイルを追加すると、Visual Basic プロジェクトに直接統合されるため、実行速度が最大になり、手間が最小限になります。 パッケージ化と展開 君の応用.
リソース ファイルは、VB 6 と VB の両方で利用できます。 VB.NET 、しかし、他のすべてのものと同様に、それらの使用方法は2つのシステム間でかなり異なります. VB プロジェクトでファイルを使用する方法はこれだけではありませんが、これには大きな利点があります。たとえば、ビットマップを ピクチャーボックス を制御または使用する mciSendString Win32 API。 「MCI」は、通常、マルチメディア コマンド文字列を示すプレフィックスです。
VB 6 でリソース ファイルを作成する
プロジェクトのリソースは、VB 6 と VB.NET の両方で表示できます。 プロジェクト エクスプローラー ウィンドウ (VB.NET のソリューション エクスプローラー — 彼らはそれを少しだけ変更する必要がありました)。リソースは VB 6 の既定のツールではないため、新しいプロジェクトには何もありません。では、単純なリソースをプロジェクトに追加して、それがどのように行われるかを見てみましょう。
ステップ 1 は、VB 6 を開始することです。 標準EXE 上のプロジェクト 新しい 起動ダイアログのタブ。今すぐ選択 アドイン メニューバーのオプション、そして アドイン マネージャ... これにより、[アドイン マネージャー] ダイアログ ウィンドウが開きます。
リストを下にスクロールして見つけます VB 6 リソース エディター .ダブルクリックするか、チェックマークを付けることができます ロード/アンロード ボックスをクリックして、このツールを VB 6 環境に追加します。リソース エディターを頻繁に使用する場合は、ボックスにチェック マークを付けることもできます。 起動時にロード 今後、この手順を繰り返す必要はありません。 [OK] をクリックすると、リソース エディタが開きます。プロジェクトにリソースを追加する準備ができました!
メニューバーに移動して選択します 計画 それから 新しいリソース ファイルを追加 または、リソース エディタを右クリックして、表示されるコンテキスト メニューから [開く] を選択します。ウィンドウが開き、リソース ファイルの名前と場所を指定するよう求められます。デフォルトの場所はおそらく希望どおりではないため、プロジェクト フォルダーに移動し、新しいリソース ファイルの名前を ファイル名 箱。この記事では、このファイルに「AboutVB.RES」という名前を使用します。確認ウィンドウでファイルの作成を確認する必要があります。「AboutVB.RES」ファイルが作成され、リソース エディターに入力されます。
VB6 サポート
VB6 は以下をサポートします。
- 文字列テーブル エディタ
('文字列テーブルを編集...') - カスタム カーソル - 'CUR' ファイル
(「カーソルを追加...」) - カスタム アイコン - 'ICO' ファイル
(「アイコンを追加...」) - カスタム ビットマップ - 'BMP' ファイル
(「ビットマップを追加...」) - プログラマー定義のリソース
(「カスタム リソースを追加...」)
VB 6 は文字列用のシンプルなエディターを提供しますが、他のすべての選択肢については別のツールでファイルを作成する必要があります。たとえば、単純な Windows ペイント プログラムを使用して BMP ファイルを作成できます。
リソース ファイル内の各リソースは、VB 6 によって識別されます。 ID およびリソース エディタでの名前。プログラムでリソースを使用できるようにするには、リソース エディタでリソースを追加し、ID とリソースの「タイプ」を使用してプログラムでリソースをポイントします。リソース ファイルに 4 つのアイコンを追加し、プログラムで使用してみましょう。
リソースを追加すると、実際のファイル自体がプロジェクトにコピーされます。 Visual Studio 6 は、フォルダー内のアイコンのコレクション全体を提供します...
C:Program FilesMicrosoft Visual StudioCommonGraphicsIcons
伝統に沿って、Elements サブディレクトリからギリシャの哲学者アリストテレスの 4 つの「要素」、つまり、地、水、空気、および火を選択します。それらを追加すると、Id は Visual Studio (101、102、103、および 104) によって自動的に割り当てられます。
プログラムでアイコンを使用するには、VB 6 の「リソースの読み込み」機能を使用します。選択できるこれらの機能がいくつかあります。
VB の定義済み定数を使用する vbResBitmap ビットマップの場合、 vbResIcon アイコン用、および vbResCursor 'format' パラメータのカーソル用。この関数は、直接使用できる画像を返します。 LoadResData (以下で説明します) ファイル内の実際のビットを含む文字列を返します。アイコンをデモンストレーションした後、その使用方法を確認します。
前述のように、この関数はリソース内の実際のビットを含む文字列を返します。これらは、ここで format パラメーターに使用できる値です。
1 カーソル リソース
2 ビットマップ リソース
3 アイコンリソース
4 メニューリソース
5 ダイアログボックス
6 文字列リソース
7 フォント ディレクトリ リソース
8 フォントリソース
9 アクセラレーター表
10 ユーザー定義リソース
12 グループカーソル
14 グループアイコン
AboutVB.RES リソース ファイルには 4 つのアイコンがあるので、 LoadResPicture(インデックス、フォーマット) これらを VB 6 の CommandButton の Picture プロパティに割り当てます。
4つでアプリケーションを作成しました オプションボタン Earth、Water、Air、Fire というラベルの付いたコンポーネントと、オプションごとに 1 つずつ、4 つのクリック イベントがあります。それから私は コマンドボタン Style プロパティを '1 – Graphical' に変更しました。これは、CommandButton にカスタム アイコンを追加できるようにするために必要です。各 OptionButton (およびそれを初期化する Form Load イベント) のコードは次のようになります (Id と Caption は、他の OptionButton Click イベントに応じて変更されます)。
カスタム リソース
カスタム リソースの「大きな問題」は、通常、プログラム コードでそれらを処理する方法を提供する必要があることです。として マイクロソフト 「これには通常、Windows API 呼び出しを使用する必要があります。」それが私たちがすることです。
使用する例は、一連の定数値を含む配列をすばやくロードする方法です。リソース ファイルはプロジェクトに含まれていることに注意してください。そのため、読み込む必要がある値が変更された場合は、シーケンシャル ファイルを開いて読み取るなど、従来の方法を使用する必要があります。使用する Windows API は、 コピーメモリ API。 CopyMemory は、そこに格納されているデータ型に関係なく、メモリのブロックを別のメモリ ブロックにコピーします。この手法は、プログラム内のデータを超高速でコピーする方法として VB 6'er によく知られています。
最初に一連の long 値を含むリソース ファイルを作成する必要があるため、このプログラムはもう少し複雑です。単純に配列に値を代入しました:
Dim longs(10) アズ ロング
ロング (1) = 123456
ロング (2) = 654321
...など。
次に、値を次のファイルに書き込むことができます。 MyLongs.longs VB 6 'Put' ステートメントを使用します。
古いものを削除して新しいものを追加しない限り、リソース ファイルは変更されないことを覚えておくことをお勧めします。したがって、この手法を使用すると、プログラムを更新して値を変更する必要があります。ファイル MyLongs.longs をリソースとしてプログラムに含めるには、上記と同じ手順を使用してリソース ファイルに追加しますが、 カスタム リソースを追加... Add Icon... の代わりに、追加するファイルとして MyLongs.longs ファイルを選択します。また、リソースを右クリックして [プロパティ] を選択し、[タイプ] を [longs] に変更して、リソースの [タイプ] を変更する必要があります。これは、MyLongs.longs ファイルのファイル タイプであることに注意してください。
作成したリソース ファイルを使用して新しい配列を作成するには、まず Win32 CopyMemory API 呼び出しを宣言します。
次に、リソース ファイルを読み取ります。
次に、バイト配列から long 値の配列にデータを移動します。バイト文字列の長さを 4 で割った整数値 (つまり、long ごとに 4 バイト) を使用して、long 値の配列を割り当てます。
Form Load イベントで配列を初期化できるとしたら、これは非常に面倒なことのように思えるかもしれませんが、カスタム リソースの使用方法を示しています。配列を初期化するために必要な定数のセットが大量にある場合、私が考えることができる他のどの方法よりも高速に実行され、それを行うためにアプリケーションに別のファイルを含める必要はありません。