Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Фоновое изображение для Edit Box


Автор: radarrulez 14.9.2008, 01:50
Помогите пожалуйста , не могу сделать, скорее даже как понять как сделать на винапи фоновое изображение для EditBox ? киньте пару строк как это сделать ): 

Автор: ИванМ 14.9.2008, 02:37
Вот например, слева бордюр у edit'а:

вначале пишешь так:

Цитата

WNDPROC OldWndProc = (WNDPROC)SetWindowLong(hEdit, GWL_WNDPROC, (LONG)EditProc);


потом такую функцию пишешь:

Цитата

LRESULT CALLBACK EditProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;    
    HBRUSH brush;
    RECT rect

    switch(uMsg)
    {
    case WM_PAINT:
     GetWindowRect(hwnd, &rect);
     rect.left=1;
     rect.right = 10;
     rect.bottom = rect.bottom - rect.top -1;    
     rect.top=1;

     CallWindowProc(OldWndProc, hwnd, uMsg, wParam, lParam);
     hdc=GetDC(hwnd);
     brush=CreateSolidBrush(RGB(235, 235, 235));
     FillRect(hdc, &rect, brush);
                    ReleaseDC(hwnd, hdc);
                      return 0;

    }
    return CallWindowProc(OldWndProc, hwnd, uMsg, wParam, lParam);
}

Автор: radarrulez 14.9.2008, 03:07
я подумал чтобы сделать фон эдита прозрачным , а под него тупо положить картинку...но и на этом спасиба

Автор: ИванМ 14.9.2008, 13:25
На сколько я знаю, функции что бы сделать фон прозрачным нет.
Нужно в событии WM_PAINT загрузить картинку в edit, потом вручную перерисовать текст.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)