Re[2]: Как закрасить правую область в CTabCtrl?
От: dennisV Россия http://dennis.psunrise.com
Дата: 17.07.02 17:34
Оценка:
Здравствуйте VVV, Вы писали:

Да, такой вариант я уже пробовал, но он не закрашивает один-два пикселя над табами (один их них приподнят как активный, а остальные ниже на один-два пикселя).

VVV>Здравствуйте dennisV, Вы писали:


V>>Помогите пожалуйста, как закрасить отмеченную область (ну например битмапом из ресурса). У меня свои CPropertySheet и CTabCtrl классы, но OnPaint, OnNcPaint, EraseBkgnd делают не то что я бы хотел... Или мне все же придется писать полностью ownerdraw? Буду рад любым откликам.


V>>


VVV>А так? (у меня получилось)



VVV>
VVV>BOOL CMyTabCtrl::OnEraseBkgnd(CDC* pDC) 
VVV>{
VVV>    // TODO: Add your message handler code here and/or call default
VVV>    
VVV>    BOOL res=CTabCtrl::OnEraseBkgnd(pDC);
VVV>    
VVV>    RECT r;
VVV>    GetClientRect(&r);
VVV>    CBrush br(RGB(0, 255, 0));

VVV>    RECT ri;
VVV>    GetItemRect(GetItemCount()-1, &ri);
VVV>    ri.top=r.top;
VVV>    ri.left=ri.right;
VVV>    ri.right=r.right;

VVV>    pDC->FillRect(&ri, &br);
VVV>    int mode=pDC->SetBkMode(TRANSPARENT);
VVV>    pDC->DrawText("Hello", &ri, DT_CENTER);
VVV>    pDC->SetBkMode(mode);

VVV>    return res;
VVV>}

VVV>
MCP, MCSD
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.