· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Свойства окна

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Янв 29, 2003 14:49:59

Как сделать так чтобы окно нельзя было растянуть за нижний правый угол?


Дата: Янв 29, 2003 15:56:58

Перекреститься и плюнуть три раза через левое плечо.
WM_GETMINMAXINFO WM_SIZE


Дата: Янв 29, 2003 16:10:34

... я тут новый , можно поконкретней пожалуйста :)


Дата: Янв 29, 2003 17:40:36

Аноним
Он имеет ввиду, что не отдавать процедуре DefaultWndProc не передавать WM_GETMINMAXINFO WM_SIZE


Дата: Янв 29, 2003 18:01:17

... а пример кода пожалуйста :)


Дата: Янв 29, 2003 18:04:15

Ну что вы :((
какой тут пример

case WM_SIZE: return 0;


Дата: Янв 29, 2003 18:28:11

... я правильно понял ?


.elseif uMsg==WM_SIZE
ret
.elseif uMsg==WM_GETMINMAXINFO
ret
.else
invoke DefWindowProc,hWnd,uMsg,wParam,lParam ret
.endif


Дата: Янв 29, 2003 18:34:37

Аноним
Думаю да!!
Попробуйте!!!


Дата: Янв 29, 2003 18:37:21

... хватаю за нижний угол и всетаки тянется ! :((


Дата: Янв 29, 2003 18:42:38

In case of WM_GETMINMAXINFO you have to fill the structure at lParam with a values - just return does not do it.

Besides, why go to such extreme?
Easier to remove WS_THICKFRAME style when creating a window.

Or you need the window to be resized by other means, like dragging the top or left border?

If so, try to override WM_SIZING (wParam should be WMSZ_BOTTOMRIGHT).


Дата: Янв 29, 2003 18:53:53

... а как мне отменить WS_THICKFRAME стиль при создании окна если я его и не заказывал.
mov wc.cbSize,SIZEOF WNDCLASSEX
mov wc.style, NULL
mov wc.lpfnWndProc, OFFSET WndProc
mov wc.cbClsExtra,NULL
mov wc.cbWndExtra,NULL
push Instance
pop wc.hInstance
mov wc.hbrBackground,COLOR_WINDOW+1
mov wc.lpszMenuName,IDM_MAINMENU
mov wc.lpszClassName,OFFSET ClassName
invoke LoadIcon,NULL,IDI_APPLICATION
mov c.hIcon,eax
mov wc.hIconSm,eax
invoke LoadCursor,NULL,IDC_ARROW
mov c.hCursor,eax
invoke RegisterClassEx,addr wc
INVOKE CreateWindowEx,\
NULL,ADDR ClassName,\
ADDR AppName,WS_OVERLAPPEDWINDOW ,\
450,300,\
260,200,\
NULL,NULL,\
hInst,NULL


Дата: Янв 29, 2003 19:04:10

SetWindowLong() тебе поможет!!!


Дата: Янв 29, 2003 21:29:45

Причём тут SetWindowLong? Всё дело в стиле WS_OVERLAPPEDWINDOW. Замени его на WS_SYSMENU+... не включая WS_THICKFRAME, тогда размеры окна нельзя будет менять.


Дата: Янв 29, 2003 23:11:59

Hail SetWindowLong()!
Without it there is no C++ (or ASM++) in Win32!!!

If serious... try instead of

WS_OVERLAPPEDWINDOW

this one:

WS_OVERLAPPEDWINDOW And (Not WS_THICKFRAME)


Дата: Янв 30, 2003 06:09:48

Аноним
Уточните.
Не позволить менять размеры окна (достаточно "правильно" обработать WM_GETMINMAXINFO) или менять размеры окна только за правый нижний угол?

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.072