0

EnableScrollBar API を使用して VScrollBar コントロールを無効にしようとしています。API を呼び出すと、問題が発生しなかったかのように返されますが、VScrollBar は再描画されません。

問題を再現するには、Vb.Net Windows フォーム プロジェクトを作成し、VScrollBar コントロールとボタンをフォームにドロップして、次のコードを貼り付けます。

<DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True, ExactSpelling:=True)>
Public Shared Function EnableScrollBar(ByVal hWnd As IntPtr, ByVal nBar As Integer, ByVal value As Integer) As Boolean
End Function

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim wSBflags As UInteger = 3UI 'SB_VERT
    Dim wArrows As UInteger = 3UI 'ESB_DISABLE_BOTH
    Dim result As Boolean = EnableScrollBar(Me.VScrollBar1.Handle, wSBflags, wArrows)


End Sub

SendMessage を使用して再描画 (WM_REDRAW) とペイント (WM_PAINT) を送信しようとしましたが、機能しません。アイデアはありますか?

Ps:複数行のテキストボックスをドロップして同じコードを使用すると、機能します....

4

1 に答える 1

1

SB_VERTウィンドウの非クライアント領域の一部としての垂直スクロールバー用です。スクロール バー コントロールの場合は、SB_CTL定数を使用します。

于 2013-01-11T20:45:43.827 に答える