Am replying according to the snapshots you sent, cuz I encountered such weird effect before and it mya be the same problem. I have encountered this problem when I was making an owner draw menu, which I guess you are making one as well. According to the MSDN you shall save the DC state that is passed to you in the DRAWITEMSTRUCT struct and restore it back. I found that this is simply calling SaveDC and RestoreDC. Follwing is the code i used:
void CMainFrame::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default
if(nIDCtl == 0) //check if menu
{
CDC dc;
dc.Attach(lpDrawItemStruct->hDC); //wrap the HDC into a CDC
dc.SaveDC();
//draw the menu item
.
.
.
dc.RestoreDC(-1); //restore the dc to the previous state
dc.Detach(); //detach the HDC from the CDC to prevent its destruction
}
}
When added this lines it did solve the problem and menus didnt show this effect anymore, so I hope this solves your problem.