Hide cursor |
HIDEHWCURSOR |
Forces hiding the hardware cursor. |
Show Cursor |
SHOWHWCURSOR |
Forces showing the hardware cursor. |
Correct mouse position |
MODIFYMOUSE |
Compensate for X,Y mouse coordinates when the window is moved or resized. It should be typically set for most games. |
Force cursor clipping |
CLIPCURSOR |
Set hardware cursor clipping within the window's region. It greately improves the game playability in some cases (namely, the Dungeon Keeper series). |
Keep cursor within window |
KEEPCURSORWITHIN |
Avoid moving the cursor outside the window area. Doing so was used as “Cursor OFF” directive in some games. |
Keep cursor fixed |
KEEPCURSORFIXED |
Inhibits the SetCursorPos() API: in some cases, it affects the program's behaviour (e.g. “Necrodrome”). |
Intercept GDI cursor clipping |
ENABLECLIPPING |
Disables GDI clipping, avoiding unpleasant effects such as the mouse that is not free to move within the whole window. |
Message processing |
MESSAGEPROC |
Most programs get X,Y mouse coordinates from the mouse messages or from the specific API. One tricky way to get the same info, though, is to listen from the windows message queue using PeekMessag / GetMessage, and retrieve the X,Y coordinates from ANY received message in the pt field. Checking this box make DxWnd to fix the X,Y coordinates on this uncommon situation as well (see “Uprising”). |
Fix WM_NCHITTEST |
FIXNCHITTEST |
Fixes the WM_NCHITTEST message X,Y coordinates. When the window's border behaves strangely, set this flag to correct the position of the mouse cursor. |
Slow down mouse polling |
SLOW |
Some old programs have this bad habit to continuously loop through the mouse status polling with no delay, using 100% of CPU time. This flag introduces a minimal and unnoticeable delay between mouse polls, saving most of CPU time. |
Release mouse outside window |
RELEASEMOUSE |
Normally, when the mouse is placed outside the window and the window keeps receiving mouse messages, the mouse cursor is placed on the corresponding window border and the program performs video scrolling or so forth. The re are some cases in which you don't want this to happen, for instance when you want to use two programs alternatively, such as a game and a keyboard simulator. Checking this flag causes DxWnd to detect the mouse outside window condition, and in this case it places the cursor right in the middle of the screen, where it is supposed to make no harm. |
Filter offending messages |
DEFAULTMESSAGES |
While a well-designed window program should react to all window system messages, it is possible that a fullscreen program was designed without an appropriate reaction to such unexpected messages, like window stretching. This option makes DxWnd automatically process all these messages that an application might not correctly handle. It should be turned on if operations like window resizing or movement cause crashes or other problems. |
Peek all messages in queue |
PEEKALLMESSAGES |
In Windows 7 and newer, any window application MUST empty its message queue. The operating system considers any application that does not do this within a defined timeout period (about 5 seconds) to be malfunctioning, and kills the process (although it keeps displaying the window's contents). Programs developed before Windows 7 didn't take this constraint into account and may easily fail to get messages during processes such as unskippable cutscenes or long calculations. This option periodically empties the system queue, ensuring that the program won't be killed. However, there is a small chance that some events (like mouse clicks) could get lost occasionally and will need to be repeated. |
DirectInput Hooking |
HOOKDI |
Hooks DirectInput libraries, making sure that the DirectInput modes are appropriate for a non fullscreen program and enabling all other flags in the same group. |
DirectInput8 Hooking |
HOOKDI8 |
Hooks DirectInput8 libraries, making sure that the DirectInput8 modes are appropriate for a non fullscreen program and enabling all other flags in the same group. |
Unacquire devices on input lost |
UNACQUIRE |
Unacquire DirectInput/DirectInput8 devices when they lose focus and acquire them back when they regain focus. This option should be set if the program using DirectInput libraries keeps listening to mouse input even when the program's window is inactive, or when it keeps ignoring mouse input even when the program's window becomes active once again. |
Emulates mouse relative movement |
EMULATERELMOUSE |
Emulates the DirectInput detection of relative mouse position by keeping the mouse at the center of the window and looking for movements. It should be used whenever the native DirectInput mechanism doesn't work properly. |