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:
- Add an extension to a control
- Write code in the controls Proc method, use this for code common to all controls of this type
- Add an extension to a window
- 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.