TPopupMenu прорисовка рамки
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 24.06.04 11:54
Оценка:
Есть owner-draw попап-меню. Все итемы рисуются ручками. Также перерисовывается стандартная рамка всего окна попап-меню и делается плоской. Примерно так:
   // Draw menu border
  HWND mWnd = WindowFromDC(ACanvas->Handle);

  if(mWnd != Handle)
  {
    TCanvas* cTemp = new TCanvas;
    cTemp->Handle = GetDC(0);
    TRect rMenu;
    GetWindowRect(mWnd, &rMenu);

    cTemp->Brush->Color = TColor(RGB(120, 120, 120));
    cTemp->FrameRect(rMenu);

    InflateRect(&rMenu, -1, -1);
    cTemp->Brush->Color = TColor(RGB(240, 240, 240));
    cTemp->FrameRect(rMenu);

    InflateRect(&rMenu, -1, -1);
    cTemp->FrameRect(rMenu);

    ReleaseDC(0, cTemp->Handle);
    delete cTemp;
  }  // if(mWnd != Handle)


Под WinXP все шоколадно, а вот под Win2000 окно меню при всплывании имеет стандартный объемный вид до тех пор, пока по нему мышой не проведешь. Как только провели мышой над итемом — окно становится плоским, как и надо.

Вопрос: как вылечить это дело? Поиск по группогуглю облегчения не принес.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.