Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обработка сообщения WM_GETMINMAXINFO / 5 сообщений из 5, страница 1 из 1
26.02.2008, 04:38
    #35154259
M.A.R.K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка сообщения WM_GETMINMAXINFO
Привет всем.
Код: 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
26.02.2008, 10:34
    #35154550
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка сообщения WM_GETMINMAXINFO
может пример до конца доизучаешь?
...
Рейтинг: 0 / 0
27.02.2008, 08:25
    #35156966
M.A.R.K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка сообщения WM_GETMINMAXINFO
Игорь , спасибо за ссылку.
Скажи, CopyMemoryFromMinMaxInfo(lParam, MinMax, Len(MinMax)) мы можем заменить на
CopyMemory(lParam, MinMax, Len(MinMax))
...
Рейтинг: 0 / 0
27.02.2008, 17:33
    #35158774
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка сообщения WM_GETMINMAXINFO
Заменить можно, это сделанно для того, чтобы не ошибится когда какой
параметр передавать и что будет делаться в данный момент :)

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

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

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


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