ソフトウェアを開発する過程で、ソフトウェアの商用化の度合いを高めるためには、インターフェイスの美しさがソフトウェアの成功の重要な要素であると考え、これらのソフトウェアの中からいくつかの成功したソフトウェアを注意深く研究しました。はい、プログラムウィンドウの背景に非常に美しく立体的なパターンを表示できます。 Visual Basic 3.0 または 4.0 を使用してフォームをデザインする場合、システムが提供する機能に従うだけでは、限られた色の中から 1 色を選択するか、プログラムを使用して簡単な線を描画することしかできません。立体感の強いテクスチャ パターンを実現したい場合は、通常、フォームの PICTURE 属性を使用してビットマップ ファイルを呼び出すしかありません。この方法には多くの欠点があります。1 つはフォームのサイズです。 2 つ目は、ビットマップのサイズによって制限され、調整が面倒で、汎用性と柔軟性がありません。2 つ目は、基本的にパターンの繰り返しであり、同じサイズのビットマップを使用するため、リソースの無駄です。フォームが無駄です。
フォームの背景パターンを実装する方法を紹介します。フォーム上にグリッド コントロールを作成し、グリッドの行を非表示に設定し、固定の行と列を削除します。プログラムを使用してグリッド コントロールをフォームと同じサイズにし、フォームのサイズの変更に応じてグリッド コントロールを変更します。次に、BMP ビットマップ ファイルを形成するパターンを設計するか (この記事のプログラムでは Pict1.bmp ファイルを使用します)、または Windows システムによって提供されるパターン (c:windowsTiles など) を使用することもできます。 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 は背景と同じまたは異なるパターンを呼び出すことができます。
コマンドも使用できますが、コマンドボタンには背景パターンがありません。
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:windowsTiles.bmp"
バックピクト(ピクトファイル)
EndSub
7. プログラム終了コマンドボタン
PrivateSubSSCommand1_Click()
終わり
EndSub
8. さまざまなシェーディング パターンをデモンストレーションする
PrivateSubSSCommand2_Click()
`2つの背景パターンが交互に表示されます
Ifpictfile=filePath&"Pict1.bmp"Then
pictfile="c:windowsTiles.bmp"
それ以外
pictfile=ファイルパス&"Pict1.bmp"
EndIf
バックピクト(ピクトファイル)
EndSub->