Точнее, как переключить на абсолютные координаты - это я отыскал в SDK
DIPROPDWORD dipdw;
dipdw.diph.dwSize = sizeof(DIPROPDWORD);
dipdw.diph.dwHeaderSize = sizeof(DIPROPHEADER);
dipdw.diph.dwObj = 0;
dipdw.diph.dwHow = DIPH_DEVICE;
dipdw.dwData = DIPROPAXISMODE_ABS;
lpdimouse->SetProperty(DIPROP_AXISMODE, &dipdw.diph);
Только получилось не совсем то, что я ожидал. Значения, которые возвращаются мышью по
осям X и Y... Эти девятизначные цифирки... Можно ли настроить мою lpdimouse так, чтобы
эти абсолютные значения были в пределах размеров окна, к примеру по Х - от 0 до 639, а
по Y - от 0 до 479?
DIPROPRANGE diprg;
diprg.diph.dwSize = sizeof(diprg);
diprg.diph.dwHeaderSize = sizeof(diprg.diph);
diprg.diph.dwHow = DIPH_BYOFFSET;
diprg.lMin = 0;
//IDirectInputDevice8::SetProperty(DIPH_RANGE) for X
diprg.lMax = 639;
diprg.diph.dwObj = DIMOUSE_XAXIS;
pDev->SetProperty(DIPROP_RANGE, &diprg.diph);
//IDirectInputDevice8::SetProperty(DIPH_RANGE) for X
diprg.lMax = 479;
diprg.diph.dwObj = DIMOUSE_YAXIS;
pDev->SetProperty(DIPROP_RANGE, &diprg.diph);