como puedo disminuir el tamaño del imputbox
el input box que ocupo es muy grande quiero que sea mas pequeño porfi ayada
Yo suelo solucionar eso fabricando mi propio inputbox, que no es más que un formulario pequeño con un textbox dentro, al cual llamas abriéndolo en modo MODAL ( formulario_input.show 1 ).
Saludos.
Saludos.
Desculpa. Retira esta linha no exemplo anterior
CDCA.Skin1.ApplySkin wParam
E coloca esta linha antes do segundo End If
UnhookWindowsHookEx gHook
CDCA.Skin1.ApplySkin wParam
E coloca esta linha antes do segundo End If
UnhookWindowsHookEx gHook
'Module1 - Coloca este código
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal HHOOK As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Const HCBT_ACTIVATE = 5
Public Const HCBT_MOVESIZE = 0
Public Const WH_CBT = 5
Public gHook As Long
Public Function InpBXWnd(ByVal lMsg As Long, ByVal wParam As Long, ByVal lparam As Long) As Long
If lMsg = HCBT_ACTIVATE Then
UnhookWindowsHookEx gHook
CDCA.Skin1.ApplySkin wParam
End If
If lMsg = HCBT_MOVESIZE Then
'lParam contem um pointer para uma estrutura lpRect, Type RECT
'com as coordenadas do InputBox
'Então, é só preciso conseguir alterar essas coordenadas
'o que se fáz com a API CopyMemory, assim:
Dim boxRect As RECT
CopyMemory boxRect, lparam, &O4 'é um pointer com 4 bytes
'e temos já as coordenadas da recta que poderemos alterar
With boxRect
.Bottom = .Bottom - 10
.Left = .Left
.Top = .Top
.Right = .Right - 30
End With
'agora é só colocar estes valores no pointer lParam
CopyMemory lparam, boxRect, &O4
'e já temos o InputBox com novas medidas
'Não testei esta função. Estou a fazê-la agora mesmo a partir do zero
'no entanto, tenho a convicção que isto funciona com esta função
'em que se fáz Hook do InputBox (Subclassing)
End If
End Function
'Form1 - Colocar este código no evento que pretenderes
gHook = SetWindowsHookEx(WH_CBT, AddressOf MsghWnd, App.hInstance, App.ThreadID)
x = InputBox("Qualquer coisa")
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal HHOOK As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Const HCBT_ACTIVATE = 5
Public Const HCBT_MOVESIZE = 0
Public Const WH_CBT = 5
Public gHook As Long
Public Function InpBXWnd(ByVal lMsg As Long, ByVal wParam As Long, ByVal lparam As Long) As Long
If lMsg = HCBT_ACTIVATE Then
UnhookWindowsHookEx gHook
CDCA.Skin1.ApplySkin wParam
End If
If lMsg = HCBT_MOVESIZE Then
'lParam contem um pointer para uma estrutura lpRect, Type RECT
'com as coordenadas do InputBox
'Então, é só preciso conseguir alterar essas coordenadas
'o que se fáz com a API CopyMemory, assim:
Dim boxRect As RECT
CopyMemory boxRect, lparam, &O4 'é um pointer com 4 bytes
'e temos já as coordenadas da recta que poderemos alterar
With boxRect
.Bottom = .Bottom - 10
.Left = .Left
.Top = .Top
.Right = .Right - 30
End With
'agora é só colocar estes valores no pointer lParam
CopyMemory lparam, boxRect, &O4
'e já temos o InputBox com novas medidas
'Não testei esta função. Estou a fazê-la agora mesmo a partir do zero
'no entanto, tenho a convicção que isto funciona com esta função
'em que se fáz Hook do InputBox (Subclassing)
End If
End Function
'Form1 - Colocar este código no evento que pretenderes
gHook = SetWindowsHookEx(WH_CBT, AddressOf MsghWnd, App.hInstance, App.ThreadID)
x = InputBox("Qualquer coisa")
