How do I draw my own submenu arrow in owner draw menus (and prevent windows from painting its arrow on top of mine)

menu, ownerdrawn, submenu, winapi, windows

Solution

See Owner Drawing the Submenu Arrow on CodeGuru.

In a nutshell, the OS always draws the arrow after you are done drawing the menu item, but you can use `ExcludeClipRect()` to exclude the menu item's rectangle from the `HDC`'s drawable area after you are done drawing inside of it, so that the OS can't draw over top of your drawing.

Problem

Windows seems to draw the submenu arrow after I have done my painting in WM_DRAWITEM, how can I stop windows from drawing the arrow?

Original source