2

vb6 の内部フォームのサイズを変更することは可能ですか? ウィンドウの境界線の高さと幅を使用する場合、Form1.HeightまたはForm1.Widthウィンドウの境界線の高さと幅を含める場合、このコードを 1 つのウィンドウ テーマで使用できます (たとえば、XP テーマを使用する WinXP で最適に動作しますが、WinXP では動作しません)。クラシック テーマでは、表示が長すぎます)、何か提案はありますか?

ここに画像の説明を入力

4

1 に答える 1

4

できることは、Width (外側のサイズ) を ScaleWidth (内側のサイズ) と比較して、非クライアント境界のサイズを取得することです。同様に、Height を ScaleHeight と比較して、上部と下部の非クライアント サイズを取得できます。そこから、必要な内側 (クライアント領域) のサイズと非クライアントのサイズに基づいて、最終的な高さと幅を設定できます。

このようなものがあなたの中に入る可能性がありますForm_Load:

  Const DesiredClientHeight as Single = 3435
   Const DesiredClientWidth as Single = 3345

   Dim fNonClientHoriz As Single, fNonClientVert As Single

   fNonClientHoriz = Me.Width - Me.ScaleWidth
   fNonClientVert = Me.Height- Me.ScaleHeight

   Me.Width = DesiredClientWidth + fNonClientHoriz 
   Me.Height = DesiredClientHeight + fNonClientVert 

フォームの幅と高さは常に Twips 単位であることに注意してください。そのため、スケール モードを twip 以外に変更する場合は、それを考慮する必要があります。

于 2012-12-07T14:19:37.017 に答える