Здравствуйте, SchweinDeBurg, Вы писали:
А>>Как или с помощью, какой функции возможно жёсткое закрепление окна на экране. Будем благодарны за любую информацию по данному вопросу.
SDB>Если Вы имеете ввиду запрет на перемещение окна, то можно попробовать обработать WM_NCHITTEST: если при его обработке DefWindowProc() возвратит HTCAPTION — вернуть, например, HTCLIENT.
+ Обрабатыва WM_WINDOWPOSCHANGING и там обнулять WINDOWPOS.flags.
Как или с помощью, какой функции возможно жёсткое закрепление окна на экране. Будем благодарны за любую информацию по данному вопросу.
Здравствуйте, Аноним.
Самое оптимальное, обрабатывать WM_HITTEST.
Здравствуйте, kiamor, Вы писали:
K>Здравствуйте, Аноним.
K>Самое оптимальное, обрабатывать WM_HITTEST.
Самое оптимальное убрать Sysmenu и Caption окна

. Тогда его таскать не за что будет
- Вы знаете — жаль, просто по-человечески жаль Памелу Андерсон, которая никогда не сможет сыграть на баяне...
Здравствуйте, 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);
//здесь можно и по удалять не нужные пункты системного меню
}