IAMRAT писал(а):Есть форма BorderStyle=0. Как можно реализовать изменение размера формы, как у BorderStyle=2?
Private Sub Form_Load()
'Me.BorderStyle = 2 (уже есть)
Me.Caption = ""
'Me.ControlBox = False ( установить в ручную)
End Sub
bon818 писал(а):Для формы с стилем BorderStyle=2, нужно:
Mikle писал(а):bon818 писал(а):Для формы с стилем BorderStyle=2, нужно:
И останется бордюр, клиентская часть формы не распространится на всю форму. Хотя это ли нужно топикстартеру?
bon818 писал(а):Не совсем понял про: клиентскую часть формы
ScaleMode = vbTwips
Debug.Print Width - ScaleWidth
bon818 писал(а):А бордюр можно и убрать, через WINAPI
Mikle писал(а):Увидишь разницу между формой и её клиентской частью. На бордюре, к примеру, нельзя рисовать, там не работает MouseMove.
bon818 писал(а):Если удастся убрать бордюр, не сломав ресайз мышью - хорошо.
bon818 писал(а):Если удастся убрать бордюр, не сломав ресайз мышью - хорошо.
Mikle писал(а):Ну элементарно же, если чуть подумать. Вот я для ресайза по X сделал пример, осталось дописать для Y и учесть случай, когда меняются оба размера.
IAMRAT писал(а):Почему устанавливаешь ScaleMode в пиксели?
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim xx As Single
If ReSizeMode Then
xx = Width + x - mx
If xx > 0 Then
Move Left, Top, Width + x - mx, Height
mx = x
End If
Else
If x < ScaleWidth And x > ScaleWidth - 8 * Screen.TwipsPerPixelX Then
MousePointer = 9
Else
MousePointer = 0
End If
End If
End Sub
IAMRAT писал(а):Если в плотную к краю будет расположен элемент управления, то работать не будет.
Сейчас этот форум просматривают: SemrushBot и гости: 41