Размер пользовательской формы - VBA
Формулировка задачи:
Доброго времени суток.
При помощи winapi я убрал у формы заголовок, кнопку закрытия, вообщем всю служебную часть. Теперь мне нужно уменьшить форму до такого размера, чтоб на ней помещалось лишь одна цифра, скажем 8-го шрифта. Однако VBA не дает этого сделать(ни в процессе разработки, ни программно), автоматически увеличивая форму до размеров, которые, как мне кажется, необходимы чтоб вместилась служебная часть окна от которой я избавился. Как можно (если возможно в принципе) уменьшить форму?
Решение задачи: «Размер пользовательской формы»
textual
Листинг программы
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" ( _
ByVal hWnd As Long, _
ByVal crKey As Long, _
ByVal bAlpha As Byte, _
ByVal dwFlags As Long) As Long
Private Sub UserForm_Activate()
Dim hWnd As Long
Label1.BackStyle = 0 'fmBackStyleTransparent
Label1 = 9
Me.BackColor = 1
hWnd = FindWindow("ThunderDFrame", Me.Caption)
SetWindowLong hWnd, -20, GetWindowLong(hWnd, -20) Or 524288
SetLayeredWindowAttributes hWnd, 1, 0, 1
End Sub