For some reason, the way values are returned from a dialog procedure confuses people,
so I'm going to try to explain it a different way.
The trick with dialog box procedures is realizing that they actually need to return two pieces
of information:
Since tw...
You may have been lazy and not bothered calling VirtualProtect(PAGE_EXECUTE) when you generated some code on the fly. You got away with it because the i386 processor page protections do not have a "read but don't execute" mode, so anything you could read you could also execute. Until ...
When you are attempting to architect an operating system, backwards compatibility is one of the ones you just have to accept. But when new programs rely on app hacks designed for old programs, that makes you want to scream.
Often people will say, "Oh, we can highlight by inverting the color." This may have worked great on two-color black-and-white displays, but in the world of 32-bit color this no longer is effective. Consider the following picture. See if you can guess which one is inverted. ...
"Why would somebody ever want to do that?" you might ask. Well, this is a common appearance
for floating toolbars. (But aside from that case, I can't think of any other valid
reason to draw a window as active even though it isn't.)
Fortunately this is easy to do. Just add this line to the of
...
Explorer does it. Now you can too.
It's a simple matter of detecting a context menu on the caption icon and displaying
a custom context menu. Here are the simple changes to our scratch program to display
a rather pointless one-item menu.
When we receive a message, we check that...
When you are writing a sort comparison function (say, to be passed to
or *gasp* to be used as
an ), your comparison function needs to follow
these rules:
Reflexivity:
.
Anti-Symmetry:
has the opposite sign of
, where 0 is considered to
be its own opposite.
Transitivity:
If
and ,
then .
Here are some logical consequences of these rules (all ...
The IsDialogMessage function works even if you aren't a dialog. As long as your child
windows have the WS_TABSTOP and/or WS_GROUP styles, they can be navigated as if they
were part of a dialog box. One caveat is that IsDialogMessage will send DM_GETDEFID
and DM_SETDEFID messages to your window, which are messag...