Заливка кистью(brush), созданной на основе Tbitmap

Тема в разделе "Общие вопросы по С и С++", создана пользователем ToM-CrazY, 25 янв 2008.

  1. ToM-CrazY

    ToM-CrazY Гость

    Суть в следующем. Имеется файл 23.bmp(8x8 пикселей) цвета только чёрный и белый. Черным цветом нанесена линия(некоторый стиль заливки), белым - фон.
    Создаю кисть с помощью функции CreatePatternBrush на основе битмапа таким образом:


    HBRUSH brush;
    Graphics::TBitmap *bm = new Graphics::TBitmap();
    bm->Height = 8;
    bm->Width = 8;
    bm->LoadFromFile("C:\\23.bmp");
    brush = CreatePatternBrush(bm->Handle);

    Затем заливаю некоторую область данной кистью:

    SelectObject(Canvas->Handle, brush);
    Rectangle(Canvas->Handle, 50,50,150,150);


    При заливке получаются чёрные линии на белом фоне.
    Возникает вопрос. Каким образом и вообще имеется ли возможность получить хэндл типа HBRUSH на эту кисть так, чтобы при заливке, линии прорисовывались определённым цветом(в нашем случае чёрным), а фон был прозрачным? Т.е. "прозрачность" должна непосредственно содержаться в кисти.
    Если использовать функцию TransparentColor из VCL для Bitmap'a результат остаётся таким же.
    В общем то в задании требуется создать свои стили кисти используя готовые графические файлы (bmp). Причём цвет фона и заливки варьируются и могут содержать прозрачность для фона. Есть у кого какие мысли?
    Заранее благодарен.
     

Поделиться этой страницей