tyomitch писал(а):Кстати, у тебя там баг: если вытащить окно проги из-под показываемого диалога, получается некрасиво
Это уже также исправлено
tyomitch писал(а):Кстати, у тебя там баг: если вытащить окно проги из-под показываемого диалога, получается некрасиво
Юстас писал(а):tyomich, я примерно представляю себе разницу между Def и Window
Public Function ShowDialog(ByVal ResName As String, pb As PictureBox) As Boolean
Dim rc As RECT, rcPic As RECT
hDialog = CreateDialogParam(hModule, ResName, pb.hwnd, 0, 0)
If IsWindow(hDialog) Then
If GetParent(hDialog) = pb.hwnd Then
Call GetWindowRect(hDialog, rc)
Call MoveWindow(hDialog, 0, 0, rc.Right - rc.Left, rc.Bottom - rc.Top, 1)
pb.Move 0, 0, (rc.Right - rc.Left) * Screen.TwipsPerPixelX, (rc.Bottom - rc.Top + 24) * Screen.TwipsPerPixelY
SavePosition 0, 0
Else
Call GetWindowRect(hDialog, rc)
Call GetWindowRect(pb.hwnd, rcPic)
Call MoveWindow(hDialog, rcPic.Left, rcPic.Top, rc.Right - rc.Left, rc.Bottom - rc.Top, 1)
-----------------------------------------------
'Call SetParent(hDialog, pb.hwnd)
-----------------------------------------------
SavePosition rcPic.Left, rcPic.Top
End If
Call ShowWindow(hDialog, SW_NORMAL)
Subclass hDialog
ShowDialog = True
End If
End Function
tyomitch писал(а):
Кстати, у тебя там баг: если вытащить окно проги из-под показываемого диалога, получается некрасиво
Это уже также исправлено
BV писал(а):2 tyomitch
Насчёт кода:
- Код: Выделить всё
...
Мне ведь главное, чтобы диалог не вылезал за пределы PictureBox'а, а тут никак это не выходит.
Сейчас этот форум просматривают: PetalBot и гости: 1