custom hwnd transparent
От: zumber  
Дата: 19.03.12 16:48
Оценка:
Здраствуйте, столкнулся с проблемой прозрачности встраимого окна.
Есть вот такой — хтмл код.(для простоты прикладываю скриншот).



<html>
<head>
    <style>
        @import url('./css/common.css') screen;
    </style>
</head>
<body>
    <div class="back" style="background: url('./images/playback.png') no-repeat; background-position: center; z-index: 0;">
        <textarea cols="50" rows="10"></textarea>
        <!-- <widget width='100' height='100%' minheight='30%' minwidth='40%' id='custom'></widget> -->
    </div>

    <div class="header-inner">
        <div class="header_wrapper">
            <div class="header_text" id="caption">caption</div>
        </div>
    </div>
</body>
</html>

При textarea — все работает как надо (она попадет под header-inner), а при виджите — нет. Для встраивания — не делал ничего спецефичного.

LRESULT Player::on_create_control(LPNMHL_CREATE_CONTROL pnmcc)
    {
        PCWCHAR id=get_attr(pnmcc->helement,"id");
        if(id)
        {
            if(wcscmp(id,L"custom")==0)
            {
                if(create_my_window())
                {
                    pnmcc->outControlHwnd=my_hwnd_;
                }

            }
        }
        return 0;
    }


окно создаю так

bool Player::create_player_window()
    {
        WNDCLASSEX wc;
        ZeroMemory(&wc, sizeof(WNDCLASSEX));

        wc.cbSize=sizeof(WNDCLASSEX);
        wc.hInstance=get_instance();
        wc.lpfnWndProc=(WNDPROC)wnd_proc;
        wc.lpszClassName=L"mywndclass";
        wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
        
        if(RegisterClassExW(&wc))
        {
            my_hwnd_=CreateWindowEx(
                //WS_EX_LAYERED
                //WS_EX_TOOLWINDOW|WS_EX_LEFT|WS_EX_LTRREADING|WS_EX_NOPARENTNOTIFY
                //WS_EX_WINDOWEDGE|WS_EX_NOPARENTNOTIFY
                0
                ,L"mywndclass",L"mywndclass", WS_VISIBLE|WS_CHILDWINDOW|WS_CLIPCHILDREN |WS_CLIPSIBLINGS,
                0,0,500,500,get_hwnd(),NULL,get_instance(),0);

            
            SetWindowLong(my_hwnd_,GWL_USERDATA,(LONG)this);

        }

        return my_hwnd_!=NULL;
    }

Подскажите, пожалуйста — есть ли возможность сделать, чтобы мой хвнд попадал под header-inner, или может я совсем все делаю — не так ?
PS: заранее, спасибо
htmlayout custom hwnd transparent
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.