You can use regions to paint part of your application's client area, to invert part of your application's client area, to define a part of the client area in which output can appear, and to perform hit testing.