powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обработка сообщения WM_GETMINMAXINFO
5 сообщений из 5, страница 1 из 1
Обработка сообщения WM_GETMINMAXINFO
    #35154259
M.A.R.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Const WM_GETMINMAXINFO = &H24

Public Type POINTAPI
        x As Long
        y As Long
End Type

Public Const GWL_WNDPROC = (- 4 )

Public Type MINMAXINFO
        ptReserved As POINTAPI
        ptMaxSize As POINTAPI
        ptMaxPosition As POINTAPI
        ptMinTrackSize As POINTAPI
        ptMaxTrackSize As POINTAPI
End Type

Global MMI As MINMAXINFO

Global Prev_hWnd As Long
Function WinAPI_GMMI(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_GETMINMAXINFO Then
    Call CopyMemory(MMI, lParam, Len(MMI))
    MMI.ptMinTrackSize.y =  100 
    MMI.ptMinTrackSize.x =  100 
Else
    WinAPI_GMMI = CallWindowProc(Prev_hWnd, hWnd, Msg, wParam, lParam)
End If
End Function
Sub SubClass()
Prev_hWnd = SetWindowLong(Form1.hWnd, GWL_WNDPROC, AddressOf WinAPI_GMMI)
End Sub
Sub UnSubClass()
Call SetWindowLong(Form1.hWnd, GWL_WNDPROC, Prev_hWnd)
End Sub
Этот код должен, обрабатывать сообщение GETMINMAXINFO и задавать минимальный размер окна.
Но, увы, код не работает...
Мужики, подскажите, почему код не работает?
Заранее благодарен.
...
Рейтинг: 0 / 0
Обработка сообщения WM_GETMINMAXINFO
    #35154550
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может пример до конца доизучаешь?
...
Рейтинг: 0 / 0
Обработка сообщения WM_GETMINMAXINFO
    #35156966
M.A.R.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь , спасибо за ссылку.
Скажи, CopyMemoryFromMinMaxInfo(lParam, MinMax, Len(MinMax)) мы можем заменить на
CopyMemory(lParam, MinMax, Len(MinMax))
...
Рейтинг: 0 / 0
Обработка сообщения WM_GETMINMAXINFO
    #35158774
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заменить можно, это сделанно для того, чтобы не ошибится когда какой
параметр передавать и что будет делаться в данный момент :)

Использована
почти
оригинальная венгерская нотация
:)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Обработка сообщения WM_GETMINMAXINFO
    #35159517
M.A.R.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
Заменить можно, это сделанно для того, чтобы не ошибится когда какой
параметр передавать и что будет делаться в данный момент :)

Спасибо за информацию.
Все работает.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обработка сообщения WM_GETMINMAXINFO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]