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