Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

проблема с прозрачностью фона выводимого на экран текста

318
28 июня 2010 года
nof
193 / / 03.04.2006
Ребят, такая проблема..
Вывожу в MFC приложении прям на форму текст:

Код:
CPaintDC dc(this); // device context for painting

    CDC mapDc;

/* ........................... */

            CBitmap addrBitmap;
            CFont font;

            font.CreateFont(30, 14, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,  PROOF_QUALITY, VARIABLE_PITCH | FF_DONTCARE,"Arial") ;

            addrBitmap.CreateCompatibleBitmap(&dc, 80, 60);
            mapDc.SetBkMode(TRANSPARENT);
            dc.SetBkMode(TRANSPARENT);
            mapDc.SelectObject(&addrBitmap);

            mapDc.SelectObject(&font);
            mapDc.SetTextColor(RGB(0,0,255));
            mapDc.TextOutA(0, 0, addrBuffer, strlen(addrBuffer));

            dc.BitBlt(XREPLACEMENT, 426, 68, 60, &mapDc, 0, 0, SRCCOPY);

            addrBitmap.DeleteObject();
            font.DeleteObject();

/* etc */

Но фон у текста всё равно есть и чёрного цвета. Отсюда вопрос - почему? И как сделать, чтобы он был прозрачным?
14
28 июня 2010 года
Phodopus
3.3K / / 19.06.2008
Я вижу
Цитата: nof

 
Код:
mapDc.TextOutA(


а кто-то утверждает

Цитата: nof

Вывожу в MFC приложении прям на форму текст:


Устраняем недоразумение.

318
28 июня 2010 года
nof
193 / / 03.04.2006
не понял тебя :/
в статьях про вывод текста c MFC используется DrawText. Заюзал её.. та же фигня - фон чёрный.

Код:
CBitmap addrBitmap;
            CFont font;
            CRect rect;

            font.CreateFont(30, 14, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,  PROOF_QUALITY, VARIABLE_PITCH | FF_DONTCARE,"Arial") ;

            addrBitmap.CreateCompatibleBitmap(&dc, 80, 60);
            mapDc.SetBkMode(TRANSPARENT);
            dc.SetBkMode(TRANSPARENT);
            mapDc.SelectObject(&addrBitmap);

            mapDc.SelectObject(&font);
            mapDc.SetTextColor(RGB(0,0,255));
            rect.OffsetRect( 0, 0);
            mapDc.DrawText(addrBuffer, strlen(addrBuffer), rect, DT_NOCLIP ) ;
            //mapDc.TextOutA(0, 0, addrBuffer, strlen(addrBuffer));

            dc.BitBlt(XREPLACEMENT, 426, 68, 60, &mapDc, 0, 0, SRCCOPY);

            addrBitmap.DeleteObject();
            font.DeleteObject();
394
29 июня 2010 года
MegaMozg
317 / / 18.03.2006
Вот это будет "прям на форму":
 
Код:
CPaintDC dc(this); // device context for painting
dc.TextOut(...);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог