To create an “Office-style menu” (or owner-draw menu) you must register that menu item with Windows as MF_OWNERDRAW and then process the WM_MEASUREITEM and WM_DRAWITEM messages sent to the menu’s parent window. The attached project file simplifies this process by encapsulating all menu drawing operations in a class called “COwnMenu” and hiding the details of working with Windows in a code module entitled “OMenu_h.” With this mini-system in place, all you have to do to get owner-drawn menus in your program is call SetSubclass on the menu’s owner form and RegisterMenu to set a menu item as owner drawn. The provided example project contains complete documentation.
Original Author: Kalani Thielen
Assumptions
Support for this code is not provided, please read the documentation in the project, as you’ll find the answers to most relevant questions there.
The files omenu_h.bas and cownmenu.cls are meant to be included in projects which intend to include owner-draw menus.
Attachments
File | Uploaded | Size |
---|---|---|
CODE_UPLOAD1809.zip | 9/3/2020 3:45:00 PM | 11616 |