Re: жёсткое закрепление окна на экране
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 17.03.03 11:30
Оценка: 6 (1)
Здравствуйте, Аноним, Вы писали:

А>Как или с помощью, какой функции возможно жёсткое закрепление окна на экране. Будем благодарны за любую информацию по данному вопросу.


Если Вы имеете ввиду запрет на перемещение окна, то можно попробовать обработать WM_NCHITTEST: если при его обработке DefWindowProc() возвратит HTCAPTION — вернуть, например, HTCLIENT.
- Искренне ваш, Поросенок Пафнутий
Re[2]: жёсткое закрепление окна на экране
От: Frostbitten Россия  
Дата: 17.03.03 14:12
Оценка: 6 (1)
Здравствуйте, SchweinDeBurg, Вы писали:

А>>Как или с помощью, какой функции возможно жёсткое закрепление окна на экране. Будем благодарны за любую информацию по данному вопросу.

SDB>Если Вы имеете ввиду запрет на перемещение окна, то можно попробовать обработать WM_NCHITTEST: если при его обработке DefWindowProc() возвратит HTCAPTION — вернуть, например, HTCLIENT.

+ Обрабатыва WM_WINDOWPOSCHANGING и там обнулять WINDOWPOS.flags.
жёсткое закрепление окна на экране
От: Аноним  
Дата: 17.03.03 10:48
Оценка:
Как или с помощью, какой функции возможно жёсткое закрепление окна на экране. Будем благодарны за любую информацию по данному вопросу.
Re: жёсткое закрепление окна на экране
От: kiamor  
Дата: 18.03.03 06:00
Оценка:
Здравствуйте, Аноним.

Самое оптимальное, обрабатывать WM_HITTEST.
Re[2]: жёсткое закрепление окна на экране
От: Saddam Россия http://saddam.narod.ru
Дата: 18.03.03 06:58
Оценка:
Здравствуйте, kiamor, Вы писали:

K>Здравствуйте, Аноним.


K>Самое оптимальное, обрабатывать WM_HITTEST.

Самое оптимальное убрать Sysmenu и Caption окна . Тогда его таскать не за что будет
- Вы знаете — жаль, просто по-человечески жаль Памелу Андерсон, которая никогда не сможет сыграть на баяне...
Re[3]: жёсткое закрепление окна на экране
От: Motrichuk Alexander Alexandrovich Украина  
Дата: 18.03.03 07:31
Оценка:
Здравствуйте, Saddam, Вы писали:

S>Здравствуйте, kiamor, Вы писали:


K>>Здравствуйте, Аноним.


K>>Самое оптимальное, обрабатывать WM_HITTEST.

S>Самое оптимальное убрать Sysmenu и Caption окна . Тогда его таскать не за что будет

Этого достаточно:

LRESULT _result;

//оконная процедура___________________________________________________________________________________________________________________________
case WM_SYSCOMMAND:
return wParam == SC_MOVE ? SetSystemMenuItemState(hWnd, (UINT)wParam, MFS_DISABLED), 0 : DefWindowProc(hWnd, message, wParam, lParam);

case WM_NCHITTEST:
_result = DefWindowProc(hWnd, message, wParam, lParam);
return _result == HTCAPTION ? HTCLIENT : _result;
//_____________________________________________________________________________________________________________________________________________

BOOL SetSystemMenuItemState(HWND hWnd, UINT uItem, UINT fState)
{

HMENU hSysMenu = GetSystemMenu(hWnd, FALSE);

MENUITEMINFO Item;
ZeroMemory(&Item, sizeof(Item));
Item.cbSize = sizeof(Item);
Item.fMask = MIIM_STATE;
Item.fState = fState;

return SetMenuItemInfo(hSysMenu, uItem, FALSE, &Item);

//здесь можно и по удалять не нужные пункты системного меню
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.