Sunday, May 02, 2010

Win32 SDK Propertygrid Made Easy

Figure1.png

   * Introduction
   * Background
   * Using the Propertygrid
   * Public Data Structures
         o PROPGRIDITEM
               + Members
         o PROPGRIDFONTITEM
               + Members
         o PROPGRIDFDITEM
               + Members
   * Messages and Macros
         o PropGrid_AddItem
         o PropGrid_DeleteItem
         o PropGrid_Enable
         o PropGrid_GetCount
         o PropGrid_GetCurSel
         o PropGrid_GetHorizontalExtent
         o PropGrid_GetItemData
         o PropGrid_GetItemHeight
         o PropGrid_GetItemRect
         o PropGrid_GetSel
         o PropGrid_ResetContent
         o PropGrid_SetCurSel
         o PropGrid_SetHorizontalExtent
         o PropGrid_SetItemData
         o PropGrid_SetItemHeight
         o PropGrid_ExpandCatalogs
         o PropGrid_ExpandAllCatalogs
         o PropGrid_CollapseCatalogs
         o PropGrid_CollapseAllCatalogs
         o PropGrid_ShowToolTips
         o PropGrid_ShowPropertyDescriptions
         o PropGrid_ItemInit
   * Notifications
         o NMPROPGRID
               + PGN_PROPERTYCHANGE
   * Design considerations
   * Tips and Tricks for the Win32/64 SDK Developer
         o Owner Draw Tip
         o Borderless Controls
         o Easy Check Boxes
         o The Catalog Toggle
         o Subclassing a Composite Control
         o Mouse Wheel Bug
         o Detecting Begin and End Scroll Events in a Listbox
   * Final Comments
   * History

Introduction

I once wrote a utility application that needed to handle a multitude of parameters associated with a remote device. I used property sheet style tab pages with individual fields for each property and the number of control fields multiplied until the application teetered under the weight of all those windows. Since then, I have become a big fan of Datagrid and Propertygrid style UIs. Ideally, at any one time you have one window displaying data and another to edit the data, yet maintain the illusion of a rich interface with many controls well organized. I wanted to have such an interface for my Win32 projects, something easy to use, ultra light weight, and professional looking.

Background

Before starting to write this Propertygrid, I did a little background research to see what kinds of solutions others had come up with. I noticed a promising property Listbox by Noel Ramathal [^] as well as another by Runming Yan [^] that appears to be based upon Noel's work. I started from these examples but strove for something that had a similar look and feel to the Visual Studio Propertygrid as well as the one used in the Pelles C IDE. In addition to this, I wanted to write this Propertygrid as a message based custom Win32/64 control.

Read more: Codeproject

Posted via email from jasper22's posterous