WM_ERASEBKGND в SysListView32 рабочего стола

Тема в разделе "WASM.WIN32", создана пользователем provocateur, 15 мар 2009.

  1. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Да, это ДЛЛ всунуть в експлорер и все. Но рисует только маленькие картинки и только из БМП.
     
  2. provocateur

    provocateur Member

    Публикаций:
    0
    Регистрация:
    5 дек 2006
    Сообщения:
    118
    попробую. сначала надо почитать про dll-всовывание :)
     
  3. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
  4. provocateur

    provocateur Member

    Публикаций:
    0
    Регистрация:
    5 дек 2006
    Сообщения:
    118
    если просто родителем нового окна сделать SHELLDLL_DefView, то при последующем включении веб-режима иконок, совершенно спокойно окно оказывает под иконками. однако странно, что веб-режим надо включить обязательно после того как окно "подсунуто" под иконки. получается, что syslistview32 уничтожается, а InternetExplorer_Server создается, но при этом у меня в любом случае при добавлении окна оно принудительно уводится в самый низ: SetWindowPos( hWnd, HWND_BOTTOM, 0, 0, 1024, 768, SWP_SHOWWINDOW )
    Так почему оно все равно оказывается поверх иконок даже в веб-режиме?

    И нельзя передвигать иконки, система думает, что ты хочешь перетащить их на новое окно
     
  5. provocateur

    provocateur Member

    Публикаций:
    0
    Регистрация:
    5 дек 2006
    Сообщения:
    118
    оказывается все довольно пристойно работает (2003 server), если сделать:
    hwnd = CreateWindowEx(
    WS_EX_CONTROLPARENT, /* наугад перебирал */
    szClassName,
    "background", 0
    WS_VISIBLE | WS_CHILD | WS_DISABLED | WS_CLIPSIBLINGS, /* наугад перебирал */
    0,
    0,
    0,
    0,
    hDefView, /*FindWindowEx ( hProgman, NULL, "SHELLDLL_DefView", NULL ); */
    NULL,
    hThisInstance,
    NULL
    );

    иконки таскаются нормально. правда нет альфа-канала (грубый контур) и нет возможности выделить рамкой.


    WS_CLIPSIBLINGS - это позволяет дочернему окну не прорисовывать участки , которые закрыты родительским?