А вот теперь новый вопрос: менюга отрисовалась и работает как надо, однако стили подобраны на халяву и не факт что все будет нормально работать на других машинах и системах, может кто-нибудь может пояснить? См. Комментарий в коде.
| Код | case WM_DRAWITEM: lpDrawItem = (LPDRAWITEMSTRUCT) lParam; if(lpDrawItem->itemID==IDM_Bitmap) { hDCMenu=lpDrawItem->hDC; hCompatibleBitmapDC=CreateCompatibleDC(hDCMenu); memset(&RectMenuButton,0,sizeof(RectMenuButton)); //RectMenuButton=lpDrawItem->rcItem; if((lpDrawItem->itemState==257)||(lpDrawItem->itemState==320)) /*Вот стили, которые я обнаружил подсматривая в отладчике за меню которое было создано обычным способом и применил к своему, однако вот в чем беда, таких значений не определено, это что-то составное из нескольких стилей, но как я ни пробовал воспроизводить это значение путем комбинации различных объявленных стилей ничего не вышло может кто сумеет растолковать??*/ { if(lpDrawItem->itemAction==ODA_SELECT)hOldMenuBitmap=SelectObject(hCompatibleBitmapDC,hMenuButtonPress); else hOldMenuBitmap=SelectObject(hCompatibleBitmapDC,hMenuButtonSel); } else hOldMenuBitmap=SelectObject(hCompatibleBitmapDC,hMenuButton); // memset(&RectMenuButton,0,sizeof(RectMenuButton)); RectMenuButton=lpDrawItem->rcItem; SetBkMode(hDCMenu,TRANSPARENT); BitBlt(hDCMenu,RectMenuButton.left,RectMenuButton.top,RectMenuButton.right,RectMenuButton.bottom,hCompatibleBitmapDC,0,0,SRCCOPY); TextOut(hDCMenu,RectMenuButton.left+45,RectMenuButton.top+5,"Text",6); SelectObject(hOldMenuBitmap,hCompatibleBitmapDC); DeleteDC(hCompatibleBitmapDC); } break;
|
|