ソフトウェアを開発する過程で、ソフトウェアの商用化の度合いを高めるためには、インターフェイスの美しさがソフトウェアの成功の重要な要素であると考え、これらのソフトウェアの中からいくつかの成功したソフトウェアを注意深く研究しました。はい、プログラムウィンドウの背景に非常に美しく立体的なパターンを表示できます。 Visual Basic 3.0 または 4.0 を使用してフォームをデザインする場合、システムが提供する機能に従うだけでは、限られた色の中から 1 色を選択するか、プログラムを使用して簡単な線を描画することしかできません。立体感の強いテクスチャ パターンを実現したい場合は、通常、フォームの PICTURE 属性を使用してビットマップ ファイルを呼び出すしかありません。この方法には多くの欠点があります。1 つはフォームのサイズです。 2 つ目は、ビットマップのサイズによって制限され、調整が面倒で、汎用性と柔軟性がありません。2 つ目は、基本的にパターンの繰り返しであり、同じサイズのビットマップを使用するため、リソースの無駄です。フォームが無駄です。
フォームの背景パターンを実装する方法を紹介します。フォーム上にグリッド コントロールを作成し、グリッドの行を非表示に設定し、固定の行と列を削除します。プログラムを使用してグリッド コントロールをフォームと同じサイズにし、フォームのサイズの変更に応じてグリッド コントロールを変更します。次に、BMP ビットマップ ファイル (この記事のプログラムでは Pict1.bmp ファイルを使用します) を形成するパターンを設計するか、他の画像からパターンをインターセプトするか、Windows システムによって提供されるパターン (c:/windows/Tiles など) を使用します。 .bmp) をピクチャ コントロールに転送します。グリッドの各ユニットをパターンと同じサイズに設定し、ユニットの数がちょうどフォームの背景全体をカバーするように設定し、すべてのユニットでパターンを表示します。上記の処理は、サブルーチン Backpict() によって実行され、パターンやフォームのサイズに関係なく、プログラムはグリッド コントロールのサイズ、グリッド セルのサイズ、およびセルの数を自動的に調整できます。 VisualBasic4.0上でプログラムのデバッグに成功しました。
1. 次のプロパティを持つ新しいフォーム Form1 を作成します。
Caption="背景パターンの実現"
Borderstyle=3 (最大値と最小値のボタンなし)
2. グリッド コントロール Grid1 を作成します。その位置とサイズはプログラムで設定されます (Form1 と同じサイズ)。そのプロパティは次のとおりです。
Enabled=False (フォーカスはグリッド コントロール Grid1 にありません)
Fillstyle=1 (すべてのセルの Text プロパティを変更)
Fixedcols=0 (固定行なし)
Fixedrows=0 (固定列なし)
Gridlines=False (グリッド線は表示されません)、
可視=真
3. 画像コントロール Picture1 を作成します。プログラムの実行中に、背景パターンの基本パターンを配置します。プロパティは次のようになります。
Visible=False (非表示)
Autosize=True (サイズを自動的に調整します)
4. Sheridan3DControls をコントロールに追加し、3 次元コマンド ボタン SSCommand を選択し、2 つのボタンを作成します
SSCommand1.Caption="終了"
SSCommand2.Caption="背景の変更" (さまざまな背景パターンを示します)
これらのプロパティ Picture は、背景と同じまたは異なるパターンを呼び出すことができます。通常のコマンド ボタン コントロールの Command を使用する場合も使用できますが、コマンド ボタンには背景パターンがありません。
5. 背景パターン形成サブルーチンを作成します。
DimpictfileAsString' ビットマップ ファイル名
DimFILEPATHAsString' ファイル パス
SubBackpict(ピクトファイル)
pic1.ScaleMode=3
Form1.ScaleMode=3
pict1.Picture=LoadPicture(pictfile)
'グリッド コントロールはフォームの背景全体をカバーします
グリッド1.トップ=-1
グリッド1.左=-1
グリッド1.幅=幅
グリッド1.高さ=高さ
Grid1.Cols=Int(Form1.ScaleWidth/picture1.ScaleWidth) 1
Grid1.Rows=Int(Form1.ScaleHeight/picture1.ScaleHeight) 1
'すべてのユニット サイズは基本パターンのサイズと同じです
ForI=0Togrid1.Cols-1
Forj=0Togrid1.Rows-1
Grid1.ColWidth(I)=picture1.ScaleWidth*15
Grid1.RowHeight(j)=picture1.ScaleHeight*15
次へ
次へ私
'すべてのユニットを選択
グリッド1.SelStartCol=0
グリッド1.SelStartRow=0
Grid1.SelEndCol=grid1.Cols-1
Grid1.SelEndRow=grid1.Rows-1
グリッド1.ピクチャ=ピクチャ1.ピクチャ
EndSub
6. メインプログラムの作成
PRivateSubForm_Load()
PrivateSubForm_Load()
'実行中のプログラムのパス名を取得します。パス名の後にバックスラッシュを付けます。
IfRight(App.Path,1)<>"/"Then
filePath=App.Path&"/"
それ以外
ファイルパス=アプリのパス
EndIf
'フォームには最初、Tiles.bmp の基本パターンで構成される背景が表示されます
pictfile="c:/windows/Tiles.bmp"
バックピクト(ピクトファイル)
EndSub
7. プログラム終了コマンドボタン
PrivateSubSSCommand1_Click()
終わり
EndSub
8. さまざまなシェーディング パターンをデモンストレーションする
PrivateSubSSCommand2_Click()
'2つの背景パターンが交互に表示されます
Ifpictfile=filePath&"Pict1.bmp"Then
pictfile="c:/windows/Tiles.bmp"
それ以外
pictfile=ファイルパス&"Pict1.bmp"
EndIf
バックピクト(ピクトファイル)
EndSub->