Удаление фона у контр-в, расположенных на CTabCtrl (XP-стили
От: _Stash Россия  
Дата: 25.02.04 10:12
Оценка:
У меня есть CTabCtrl на закладках которого расположены разные окошки, мне нужно, чтобы у контролов (точнее у CheckBox'ов, статического текста и т.п.) как и у окна задний фон был прозрачным (т.к. используя XP-стили по-умолчанию у закладок Tab'а своеобразная заливка отображается (ну плавная смена цвета)). У окна я удаляю задний фон просто вызывая WM_ERASEBKGND, а вот у контролов в OnCtlColor задний фон прозрачным не становится (а становится белым). Я так понимаю, что все это из-за того что я удалил задний фон у окна, но как по-другому это осуществить не понимаю, "помогите кто-чем может =)"

для большей ясности попытаюсь привести часть кода, вот, примерно, как я делаю.
в файле mybasedlg.cpp
    CTabCtrl m_TabCtrl;
    TCITEM TabItem;
    ...
    m_TabCtrl.InsertItem( 0, &TabItem );
    ...
    pMyDlg = new CMyDlg; 
    TabItem.mask = TCIF_PARAM;
    TabItem.lParam = (LPARAM)pMyDlg; 
    m_TabCtrl.SetItem(0, &TabItem);
    VERIFY(pMyDlg->Create(CMyDlg::IDD, &m_TabCtrl));
    pMyDlg->SetWindowPos(NULL, 2, 22, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
    pMyDlg->ShowWindow(SW_SHOW);
    ...

в файле mydlg.cpp я обрабатываю ON_WM_ERASEBKGND() чтобы удалить задний фон:
    BOOL CMyDlg::OnEraseBkgnd(CDC* pDC) 
    {
        // может здесь надо как-то более правильно это делать?-)
        return TRUE;
    }

кроме того в OnCtlColor я пытаюсь сделать задний фон у контролов прозрачным
(но он становится просто белым): pDC->SetBkMode(TRANSPARENT)

p.s. есть чем-то похожая тема: http://www.rsdn.ru/Forum/?mid=62812
Автор: BugMan
Дата: 11.06.02
, но у меня вроде pDC меняем ж)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.