CMenu ownerdraw
-
Hello. I would like to create an owner-drawn CMenu class, and therefore i override DrawItem and MeasureItem, like this:
class MyMenu : public CMenu { public: virtual void DrawItem(LPDRAWITEMSTRUCT lpDis); virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMis); }; void MyMenu::DrawItem(LPDRAWITEMSTRUCT lpDis) { } void MyMenu::MeasureItem(LPMEASUREITEMSTRUCT lpMis) { }
And then I add a menu to my app's CMainFrame://MainFrm.h MyMenu TopMenu; //Mainfrm.cpp TopMenu.LoadMenu(IDR_MAINFRAME); for(int i = 0; i<3; ++i) TopMenu.ModifyMenu(ID_DAWS_HEJ+i, MF_OWNERDRAW, ID_DAWS_HEJ+i); SetMenu(&TopMenu);
But the problem is that DrawItem and MeasureItem are never called! I do receive WM_DRAWITEM and WM_MEASUREITEM, but they are just not handled by my class. What do I do?