информационная безопасность
без паники и всерьез
 подробно о проекте
Spanning Tree Protocol: недокументированное применениеПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Мощные индийские ключи 
 Срочные патчи для критических уязвимостей... 
 Очередной рекордный патч Microsoft 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Уточнил бы язык что ли... MSDN > 02.10.08 21:00  Число просмотров: 3104
Автор: kstati <Евгений Борисов> Статус: Elderman
<"чистая" ссылка>


Transparent Background
<programming>
[Win32] прозрачный background у контролов на диалоге 02.10.08 04:31  
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>
как сделать прозрачный background у контролов на диалоге?
пробовал имлементировать WM_CTLCOLOR не помогает для checkbox, если имлементировать
WM_CTLCOLORSTATIC, тогда repaint ne работает :(

заране спасибо
[Win32] решение 03.10.08 01:39  
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>
пришлось слепить из многих кодов,
причём каждый отдельно взятый код не работал или работал нетак, о-о-х!
для тех кому интересно вот код:
BOOL CUI_testDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    
    m_BgBitmap.LoadBitmap(IDC_NZ_WELCOME);
    m_BgBrush.CreatePatternBrush(&m_BgBitmap);

}
HBRUSH CUI_testDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    if((nCtlColor != CTLCOLOR_STATIC))
        return hbr;
    //возвращаем нашу brush только для static and checkbox controls !!

    CPoint pt(0,0);

    if(this != pWnd)
    {
        CRect rc;
        pWnd->GetWindowRect(&rc);
        ScreenToClient(&rc);
        CRect rcBg;
        GetDlgItem(IDC_NZ_WELCOME)->GetWindowRect(&rcBg);
        ScreenToClient(&rcBg);
        pt.x = -rc.left;
        pt.y = -(rc.top - rcBg.top);//вычитаем title image
    }

    if((HBRUSH)m_BgBrush != NULL)
        m_BgBrush.UnrealizeObject(); 
    pDC->SetBrushOrg(pt); 
    pDC->SetBkMode(TRANSPARENT);
	
    return (HBRUSH)m_BgBrush;
}

---
[Win32] Уточнил бы язык что ли... MSDN > 02.10.08 21:00  
Автор: kstati <Евгений Борисов> Статус: Elderman
<"чистая" ссылка>


Transparent Background
[Win32] уточняю MFC 02.10.08 21:35  
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>
Использую MFC, проблема следующая:
есть staitc control, checkboх и другие контролы на диалоге, как сделать transparent background у етих контролов.
У меня есть диалог которой закрыт битмапом, как background, поверху лежат контролы у которых background должен быть прозрачный.
Рекомендуют следующее:
Имплементировать WM_CTLCOLOR handler в диалоге и возвражать brush которая будет исползоваться дла прорисовки background. Brush в моём случае ето bitmap area под контролом, что я и делаю, но ни фига не получается.
Максимум чего смог добится ето прорисовки для static control, но для других (например checkboх) не работает :(.
Ето же типичная задача, наверняка кто-то уже делал или использовал чей-то код.
Я в GUI совсем не очень, скинте код у кого есть.
Заранее благодарю.
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach