Begining of using classes for Windows in PB. Has application, and main window classes as well as most common controls. Still working on demos and some of the properties / methods for common controls.

Some of the features

  • "Message reflection" - Sends parent notifications to child class.
  • Message Bridge - Intermediary class that bridges from a windows procedure call back to classes.
  • Most windows common controls, still working on these
  • MessageExtensions - Allows injecting handling of messages. This allows an application to handle way the click event for a button without modifying the button common control class.

There are 4 common ways to insert user code into existing controls:

  1. Add an extension to a control
  2. Write code in the controls Proc method, use this for code common to all controls of this type
  3. Add an extension to a window
  4. Write code in the windows Proc method. Feels more like SDK programming.

The 1st two methods work because WM_COMMAND, WM_NOTIFY are reflected back to originating window. Also WM_SIZE is sent to child windows.

List of latest changes until it stabilizes a bit:

  • 3/27/2012 - Merged test app and demos so each .bas file is a demo. Demo's that respond to events are shown using a control extension. Fixed a small bug with reflected messages that could recurse infinitely.
  • 4/2/2012 - Updated Button, ImageList, ComboBoxEx, ListView, TreeView demo's and controls. Minor other changes.