The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

With what operations is LockWindowUpdate not meant to be used?
Feb 22, 2007
Post comments count 0
Post likes count 0

With what operations is LockWindowUpdate not meant to be used?

Raymond Chen
Raymond Chen

Okay, now that we know what operations is meant to be used with, we can look at various ways people misuse the function for things unrelated to dragging. People see the "the window you lock won't be able to redraw itself" behavior of and use it as a sort of lazy version of the message. Though sending the message really isn't that much harder than calling . It's twenty more characters of typing, half that if you use the macro in . As we noted earlier, only one window in the system can be locked for update at a time. If your intention for calling is merely to prevent a window from redrawing, say, becaus...

Mandarin Chinese gaining popularity in public schools
Feb 21, 2007
Post comments count 0
Post likes count 0

Mandarin Chinese gaining popularity in public schools

Raymond Chen
Raymond Chen

NPR reports that Mandarin Chinese is gaining popularity in public schools. (But please oh please don't take pronunciations lessons from the student at time code 3:25. His first tone was clearly a second—falling victim to the classic mistake of applying English tone shaping to Chinese syllables.) On the other hand, some of those students who chose to study Mandarin Chinese didn't, um, do their homework: Some say they are here by accident or because they thought it would be an easy "A". Oops. I do admire the argument of one parent against learning Chinese: Everybody is going to speak English. I'm sure t...

With what operations is LockWindowUpdate meant to be used?
Feb 21, 2007
Post comments count 0
Post likes count 0

With what operations is LockWindowUpdate meant to be used?

Raymond Chen
Raymond Chen

As I noted earlier, the intended purpose of can be captured in one word: dragging. The simplest case of is used by the window manager when you move or resize a window and "Show window contents while dragging" is disabled. When you start the move/size operation, the window manager locks the entire desktop so it can draw the dotted-rectangle feedback without risking interference from another window that happens to intersect the dotted-rectangle. When the move/size operation is complete, the desktop is unlocked, and the world returns to normal. A common case where an application uses is if it wants to draw a c...

Crush Finder experiment gets off the ground at Princeton
Feb 20, 2007
Post comments count 0
Post likes count 0

Crush Finder experiment gets off the ground at Princeton

Raymond Chen
Raymond Chen

And who says these college students aren't getting anything done? The Princeton University student government announced, among other things, a web site wherein students could list up to five other people they have crushes on, and if two people list each other, the web site puts the two potential lovebirds in touch with each other. The site went online on (appropriately enough) Valentine's Day, and student reaction was swift, with over a thousand students signing up before the day was over. You can pay Crush Finder a visit, though since you're (probably) not a student you can't actually submit anything, but th...

How is LockWindowUpdate meant to be used?
Feb 20, 2007
Post comments count 0
Post likes count 0

How is LockWindowUpdate meant to be used?

Raymond Chen
Raymond Chen

Now that we know how works, we can look at what it is for. Actually, the intended purpose of can be captured in one word: dragging. But we'll get to that a little later. The purpose of is to allow a program to temporarily take over the responsibility of drawing a window. Of course, in order to do this, you have to prevent the window procedure (or anybody else) from doing their normal drawing activities; otherwise, the two pieces of code (the code that normally draws the window and the code that's trying to take over) fight for control of the window and you get an ugly mess since neither knows what the other...

What does LockWindowUpdate do?
Feb 19, 2007
Post comments count 0
Post likes count 0

What does LockWindowUpdate do?

Raymond Chen
Raymond Chen

Poor misunderstood . This is the first in a series on , what it does, what it's for and (perhaps most important) what it's not for. What does is pretty simple. When a window is locked, all attempt to draw into it or its children fail. Instead of drawing, the window manager remembers which parts of the window the application tried to draw into, and when the window is unlocked, those areas are invalidated so that the application gets another message, thereby bringing the screen contents back in sync with what the application believed to be on the screen. This "keep track of what the application tried to dr...

News flash: Professional athletes do it for the money
Feb 16, 2007
Post comments count 0
Post likes count 0

News flash: Professional athletes do it for the money

Raymond Chen
Raymond Chen

This weekend is NBA All-Star Weekend 2007, because just having a game isn't enough; you need to make it a weekend-long festival. Tyrus Thomas, invited to paricipate in the slam dunk contest, which comes with a top prize of $35,000, was quoted as saying I'm just going to go out there, get my check and call it a day. ... I'm just into the free money. That's it. I'll just do whatever when I get out there. And yet, there was a huge uproar over the shocking revelation that (news flash!) professional athletes are in it for the money. Thomas was fined $10,000 by his team for his remarks—rather ironic that the...

Why don't I use any class libraries in my sample code?
Feb 16, 2007
Post comments count 0
Post likes count 0

Why don't I use any class libraries in my sample code?

Raymond Chen
Raymond Chen

As a general rule, I avoid using any class libraries in my sample code. This isn't because I'm opposed to class libraries, but rather because I don't want to narrow my audience to "people who use MFC" (to choose one popular class library). If I were to start using MFC for all of my samples, I'd probably lose all the people who don't use MFC. "Oh, but those people can just translate the MFC code into whatever class library they use." Well, sure, they could do that, but first they would have to learn MFC. I wouldn't be talking about s and s any more but rather s and s. I would write "Add this to your handler", a...

There's not much luggage space, unless you dump the snow
Feb 15, 2007
Post comments count 0
Post likes count 0

There's not much luggage space, unless you dump the snow

Raymond Chen
Raymond Chen

Every year, Road and Track magazine reviews a strange vehicle in their April edition. Last year, it was the 1949 MG TC. But my favorite is their 2005 review of the Zamboni 500. [T]he Zamboni leaves the line with alacrity (revved to its 3000-rpm redline), rockets up to 9.7 mph and then stays at exactly that speed for the full 200-ft. length of the rink. Those old myths that you will "black out" or "be unable to breathe" at speeds above 9.5 mph proved to be completely untrue. I was perfectly comfortable, once I got over the excitement, and felt no ill effects then or later. There's not much luggage space, u...