Question: I've got a Windows API Window. I've managed to make it windowed, and "fullscreen windowed". But I can't seem to make the window just full-screen- for example, even if I specify `WS_POPUP`, I can still freely move the cursor to my second screen. However, if I launch full-screen games, they don't permit it, and exist only exclusively or minimized. How can I make a window that behaves this way?

Edit: Excuse me. Limiting the mouse movement was just one example of how a full-screen window behaves differently to a non-fullscreen window, I'm not looking for how to limit the mouse movement.

Or is this *set* in the D3DPRESENT\_PARAMETERS, rather than just communicated?

Answer: 
My approach to this is two-fold

* First, I abstract the source of control for every game object. That lets me implement a "user controlled entity", which takes input from gamepad/keyboard/mouse/etc for the player entity, and implement AI routines for NPCs.
* Second, each entity can only express an "intent" ... so the output from the abstracted control object in point 1 only says, "I want to move in that direction". That intent is then implemented by some other routine which checks against map details, does collision, etc.
you can implement your object control in map calss, but that would create some god object and it'll be too difficult to debug or add features your program in future. there are two approches for this problem :

1- one is to handle all the inputs in the player class, and then ask map to move your player as player calculated, this can also be applied for any other dynamic or static objects in your scene. note that in this apprich map class only check for collision or other similar things , and doesn't care how or why is the object moving.

2- you can also share all map data with other dynamic classes (using physics engine and creating an object for every child of map is a way of doing this) and check all the thing you have to consider while moving objects inside their own class.

the first approch is much more simpler and take less time to implement, because you consider all your object the same and move them in a same manner, but in the second aproch you have much more flexibility with your obejects moving (for example you can make some object to ignore collsion)