Automatic |
Clears any forced cursor visibility settings. |
|
Hide |
HIDEHWCURSOR |
Forces hiding the hardware cursor. |
Show |
SHOWHWCURSOR |
Forces showing the hardware cursor. |
Default |
Default behaviour, DxWnd does not interfere with the program clipping operation apart from the needed coordinate scaling. |
|
ON |
CLIPCURSOR |
DxWnd forces the bounding of the cursor within the main window through a GDI clipper. The clipper is then destroyed and rebuilt in case of window lose / gain focus events so that it doesn't interfre with operations on the window border or on other windows, for instance when Alt-tabbing. |
OFF |
SUPPRESSCLIPPING |
DxWnd inhibits the bounding of the cursor within the main window bypassing the creation of a GDI clipper. |
LOCKED |
CLIPLOCKED |
Same as ON, but never releasing the clipper. |
Include menu in clipper area |
CLIPMENU |
If flag is set and the window has a menu, extend the mouse clipper area to allow reaching the menu. Implementation is partial: doesn't take into account multi-line menus or menus that are not positioned on the top of the window client area, but it seems good for most cases. |
Hook dinput |
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. |
Hook dinput8 |
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 focus 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. |
Emulate 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. |
Skip HID device type |
SKIPDEVTYPEHID |
Newer versions of Windows may have access to new types of HID (human interface device) that can interfere with old games that can only recognize the three traditional devices (mouse, keyboard, and joystick). This flag masks the presence of such devices. It fixes a crash in the game "Jetboat Superchamps 2," the only known game that requires this setting. |
Suppress DI common errors |
SUPPRESSDIERRORS |
This flag forces some DirectInput operations to return a successful completion rather than an error even in the event of a failure. Some programs work more reliably with this flag turned on. |
Set keyboard shared coop. level |
SHAREDKEYBOARD |
Forces DirectInput cooperative level to NONEXCLUSIVE mode for the keyboard. Use this flag when the program shows DirectInput errors related to keyboard access. The game "Planet of the Apes" can't process the PrintScreen key without this flag. |
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. |
Position message processing |
MESSAGEPROC |
Some programs get the current mouse position via the dedicated GetCursorPos API, but others analyze the POINT coordinates that are includes in every window message the program receives. This flag enables a Windows hook that receives messages and compensates for windowed mode's displacement of mouse coordinates by adjusting them to the equivalent fullscreen coordinates. |
Correct MOUSEHOOK callback |
FIXMOUSEHOOK |
Fixes "Jagged Alliance 2" mouse problems. |
Keep cursor within window |
KEEPCURSORWITHIN |
Avoid moving the cursor outside the window area. This was used as a “Cursor OFF” directive in some games. |
Keep cursor fixed |
KEEPCURSORFIXED |
Inhibits the SetCursorPos() API. In some cases, it affects the program's behavior (e.g. the game Necrodrome). |
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. |
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. There are some cases in which you don't want this to happen: for instance, when you want to alternate between two programs, 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 cause no harm. |
No mouse events generation |
NOMOUSEEVENTS |
Useful for the game "The Italian Job". Corrects the undesirable effect of sending clicks here and there, easily intercepted by other programs and producing an incredible chaos on the desktop! |
Swallow mouse move messages |
SWALLOWMOUSEMOVE |
Fixes "Akte Europa" blocked rendering while moving the mouse. |
Process all messages |
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 to the Windows message queue using PeekMessage/GetMessage, and retrieve the X,Y coordinates from ANY received message in the pt field. Checking this box makes DxWnd fix the X,Y coordinates in this uncommon situation as well (see the game Uprising). |
Skip offending messages |
FILTERMESSAGES |
In theory, a fullscreen message should not expect several messages that are impossible to receive, such as border sizing, taskbar events, and so forth. Some programs are not properly coded to react to such "impossible" messages and may show malfunctions. This flag causes potentially harmful and meaningless messages to be suppressed. |
Defaulting offending messages |
DEFAULTMESSAGES |
While a well-designed windowed 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 windowed 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. |
Filter winposchange messages |
NOWINPOSCHANGES |
Suppresses the WM_WINDOWPOSCHANGING or WM_WINDOWPOSCHANGED messages that some programs send to themselves to automatically move their window. This option is used for Rollercoaster Tycoon. |
Add message pump (Win7 comp.) |
PEEKALLMESSAGES |
Windows 7 and onward monitor each foreground process's input message queue and kill any processes that wait too long to flush their queue (generally five seconds). Some older games skip this task during long intro movies or AI processing, making them vulnerable to being killed by the OS. This flag activates a thread that periodically flushes pending messages from the queue, preventing these games from being automatically terminated. |
Enable hot keys |
ENABLEHOTKEYS |
DxWnd can set some special keys (e.g. Alt, Fn) to trigger special actions, storing the key association in the DxWnd.ini file. This flag enables hot key definitions. If unchecked, all hot keys are disabled for this program. |
Intercept Alt-F4 key |
HANDLEALTF4 |
Intercepts the Alt-F4 key in the message processing loop to immediately terminate the program, avoiding any programmed exit procedure (cinematics, save state warnings, ads...). Only has an effect if the game is doing the message processing loop. |