Размер пользовательской формы - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д