What is the story of the mysterious DS_RECURSE dialog style?
There are a few references to the
DS_RECURSE dialog style scattered throughout MSDN, and they are all of the form “Don’t use it.” But if you look in your copy of
winuser.h, there is no sign of
DS_RECURSE anywhere. This obviously makes it trivial to avoid using it because you couldn’t use it even if you wanted it, seeing as it doesn’t exist.
“Do not push the red button on the control panel!”
— There is no red button on the control panel.
“Well, that makes it easy not to push it.”
As with many of these types of stories, the answer is rather mundane.
When nested dialogs were added to Windows 95, the flag to indicate that a dialog is a control host was
DS_RECURSE. The name was intended to indicate that anybody who is walking a dialog looking for controls should recurse into this window, since it has more controls inside.
The window manager folks later decided to change the name, and they changed it to
DS_CONTROL. All documentation that was written before the renaming had to be revised to change all occurrences of
It looks like they didn’t quite catch them all: There are two straggling references in the Windows Embedded documentation. My guess is that the Windows Embedded team took a snapshot of the main Windows documentation, and they took their snapshot before the renaming was complete.
Unfortunately, I don’t have any contacts in the Windows Embedded documentation team, so I don’t know whom to contact to get them to remove the references to flags that don’t exist.