Очистить окно от gdiplus

Тема в разделе "WASM.BEGINNERS", создана пользователем tr4b, 25 сен 2017.

  1. tr4b

    tr4b New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2017
    Сообщения:
    8
    Всем привет.
    Приложение mfc, рисую в окне картинку через gdiplus

    код отрисовски:

    Код (Text):
    1.  
    2. Graphics *lpGraphics = new Gdiplus::Graphics( lpPicture->GetSafeHwnd(), TRUE );
    3.  
    4.    if ( lpGraphics )
    5.    {
    6.      Gdiplus::Bitmap* lpBitmap = new Gdiplus::Bitmap( lpFilePath );
    7.  
    8.      if ( lpBitmap )
    9.      {
    10.        RECT Rect;
    11.        lpPicture->GetWindowRect( &Rect );
    12.  
    13.        if ( lpGraphics->DrawImage( lpBitmap, 0, 0, Rect.right - Rect.left, Rect.bottom - Rect.top ) == Ok )
    14.        { ..
    15.  
    А вот как теперь вернуть окно в чистый вид, понять не могу, гуглил пробовал много вариантов, единственный который работает это gdiplus graphics::Clear, но он не подходит тем, что просто заливает окно в цвет.
    Может кто сталкивался ?
     
  2. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    887
    Что подразумевается под этим?
     
  3. tr4b

    tr4b New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2017
    Сообщения:
    8
    Вернуть внешний вид окна в изначальный вид, т.е. цвет и так же на нем находится STATIC с надписью, который при заливке уже не видно.
    Как бы объяснить, приложение типа книги, я хочу перелистывая страницу увидеть чистое окно для изображения, чтобы вновь его бросить на следующую страницу.
     
  4. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    887
    Родительское окно Stacic'а имеет стиль WS_CLIPCHILDREN?
     
  5. tr4b

    tr4b New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2017
    Сообщения:
    8
    Thetrik, если верить winspy то нет, но есть стиль WS_CLIPSIBLINGS
     
  6. tr4b

    tr4b New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2017
    Сообщения:
    8
    Thetrik, простите мне мою необразованность :)
    Я пробовал все кроме методов RedrawWindow(), за весь день в гугле нигде не увидел этот метод или его использование.
    Вызывал сначала у родителя и потом в дочерном окне, при такой последовательности окно перерисовывается.
    Спасибо, что направили.

    А нет я наврал, работает lpParent->RedrawWindow и все окно зачищает, продолжу наблюдения )
     
  7. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    887
    Поставь WS_CLIPCHILDREN стиль родительскому окну, тогда его перерисовка не будет затрагивать дочерних окон.