[DllImport("coredll.dll", SetLastError=true)]
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
[DllImport("coredll.dll", SetLastError=true)]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
<DllImport("coredll.dll", SetLastError:=True)> _
Private Shared Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
End Function
<DllImport("coredll.dll", SetLastError:=True)> _
Private Shared Function GetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer) As Integer
End Function
None.
Do you know one? Please contribute it!
The sample code is compatible with Visual Studio .Net 2005.
==> For Windows 8.1 and later You must use "user32.dll" instead of "coredll.dll".
=========
Please add some!
private const int GWL_STYLE = -16;
private const int BS_CENTER = 0x00000300;
private const int BS_VCENTER = 0x00000C00;
private const int BS_MULTILINE = 0x00002000;
public static void SetButtonStyle(Button ctrl)
{
IntPtr hWnd;
int style;
// ctrl.Capture = true;
// hWnd = GetCapture();
// ctrl.Capture = false;
// Comment below and uncomment above if using Visual Studio 2003
hWnd = ctrl.Handle;
style = GetWindowLong(hWnd, GWL_STYLE);
SetWindowLong(hWnd, GWL_STYLE, (style | BS_CENTER | BS_VCENTER | BS_MULTILINE));
ctrl.Refresh();
}
.... and much the same in VB.NET - tested on VS2008/Windows CE 6
Option Explicit On
Option Strict On
Imports System.Runtime.InteropServices
Module MultiLineButtonFix
<DllImport("coredll.dll", SetLastError:=True)> _
Private Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
End Function
<DllImport("coredll.dll", SetLastError:=True)> _
Private Function GetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer) As Integer
End Function
Private Const GWL_STYLE As Int32 = -16
Private Const BS_CENTER As Int32 = &H300
Private Const BS_VCENTER As Int32 = &HC00
Private Const BS_MULTILINE As Int32 = &H2000
Public Sub SetButtonStyle(ByVal ctrl As Button)
Dim hWnd As IntPtr
Dim style As Integer
hWnd = ctrl.Handle
style = GetWindowLong(hWnd, GWL_STYLE)
SetWindowLong(hWnd, GWL_STYLE, (style Or BS_VCENTER Or BS_MULTILINE))
ctrl.Refresh()
End Sub
End Module