2017-12-21 12 views
-1

Windows APIに慣れていません。私はW.APIを使用してユーザーフォームのサイズ変更に関するコードをコピーしますが、サイズ変更中に複数ページの幅をユーザーフォームにバインドしたいと考えています。 W.APIを使用して複数ページやその他のオブジェクトを使用することはできますか?アクティブウィンドウの場合にのみ表示されますか? 。Windows APIを使用してユーザーフォームと複数ページのサイズを変更

ここにコードがあります。

Private Sub MakeFormResizable() 

Dim lStyle As Long 
Dim hWnd As Long 
Dim RetVal 

Const WS_THICKFRAME = &H40000 
Const GWL_STYLE As Long = (-16) 

hWnd = GetActiveWindow 


lStyle = GetWindowLong(hWnd, GWL_STYLE) Or WS_THICKFRAME 


RetVal = SetWindowLong(hWnd, GWL_STYLE, lStyle) 


SetLastError 0 
End Sub 

ありがとうございます。

+0

を変更し、WindowsのAPIはそれについてできることは何もありません。ウィンドウのサイズ変更に応じて、子コントロールのサイズと位置を調整するコードが必要です。 Windows APIはあなたのために薄い空気からそのコードを作成しません。 – IInspectable

+0

他にもこれを行う方法はありますか?なにか提案を?私はウィンドウのサイズを変更した後にそれを行うことができます。それはちょっとそれが遅れて見て悪い見えます。 : – remoel

答えて

0

ユーザーフォームの幅と高さを変更するには、heightプロパティとwidthプロパティを設定します。ウィンドウをリサイズするために準備されていない場合、「mpFred」と呼ばれるマルチコントロールで「frmDemo」と呼ばれるユーザーフォームを考えると、これはそれを

Sub MakeBigger() 
    frmDemo.width = frmdemo.width + 100 'increase by 100 points 
    frmDemo.Height = 650 'set to specific value 
    frmDemo.Controls("mpfred").width =frmDemo.Controls("mpfred").width + 100 
    frmDemo.Controls("mpfred").height = frmdemo,height - 20 'slightly shorter than the form 

End Sub 
+0

こんにちはお返事ありがとうございますが、私がしたかったのは、ユーザーフォームのサイズを変更したり、複数ページのサイズを変更したりすることでした。ブラウザのサイズを変更するなど、内部のコンテンツも変更されています。 – remoel

+0

http://www.andypope.info/vba/Anchor.htm –

+0

これは私が探しているものです。ありがとうございます! – remoel

関連する問題