Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2024, 22:57   #1
LUN2
Пользователь
 
Регистрация: 14.08.2021
Сообщений: 19
По умолчанию Как изменить фоновую кисть окна при перетаскивании на него ?

Добрый вечер!
Как правильно поменять фоновую кисть окна, когда на него перетаскивается что-то (у меня - объект OLE) ?
Решил изменить фоновую кисть класса - см. код ниже.
Мой DragEnter вызывается, хэндлы кисти и окна ненулевые.
НО - Фон не поменялся.

Может быть по-другому как-то надо (с winapi+gdi только начинаю работать, поэтому не слишком много знаю...) ?

SetClassLongA должна сразу дать эффект ?


Код:
    // IDropTarget implementation
    virtual HRESULT __stdcall DragEnter(IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) override {
 
        std::cout << "               OLE -> DragEnter." << std::endl;
 
        *pdwEffect = DROPEFFECT_COPY;
 
        // Изменим кисть окна _hWnd_
            HBRUSH DragBrush = CreateHatchBrush(HS_CROSS, RGB(255, 0, 0));
 
            if (DragBrush == NULL) {
                std::cout << "Error creating dragging brush_2" << std::endl;
            }
            else {
                // ничего не делаем - кисть сохранена
            }
            DWORD OldBrush = SetClassLongA(hWnd, GCLP_HBRBACKGROUND, (LONG) DragBrush);

            BOOL ok1 = InvalidateRect(hWnd, NULL, TRUE);
            BOOL ok2 = UpdateWindow(hWnd);
            // ok1=ok2=1   OK
 
 
        return S_OK;
    }
LUN2 вне форума Ответить с цитированием
Старый Вчера, 12:23   #2
MallSerg
 
Аватар для MallSerg
 
Регистрация: 17.08.2024
Сообщений: 8
По умолчанию

У тя такаеж ошибка как и в вапросах на киперфоруме.

Что днлает шанз палучения атвета плизким к нулю.
MallSerg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
блок с логотипом занимает по всей ширине окна а с права от него хочу сделать меню, а получается только под этим блоком nikytt HTML и CSS 1 27.11.2015 17:33
Как сохранить фоновую картинку? caro1223 Общие вопросы .NET 6 19.08.2015 18:33
Задать фоновую картинку в <tr> IndigoHollow HTML и CSS 12 11.09.2013 18:54
Изменить размер окна Pein95 Windows Forms 2 17.01.2013 20:56
Изменить цвет окна Syltan Win Api 2 10.12.2010 20:52