Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пропадает кнопка по непонятной причине 
:(
    Опции темы
hyp1k
Дата 26.2.2012, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 3.4.2008

Репутация: нет
Всего: нет



Делаю тулбар для ие. Тулбар это окошко, кнопка - дочернее окошко. Код создание первого и второго ниже. Когда навожу на крестик тулбар перерисовывается и кнопка пропадает. Но если нажать на область, где должны быть кнопка, она отрисовывается нажатой и дальше снова ведет себя нормально. В чем может быть проблема? Что делаю не так? Как понять по какому событию пропадает кнопка?
http://s2.ipicture.ru/uploads/20120226/S6unapHz.png

Код создания тулбара:
Код

STDMETHODIMP CDeskBand::SetSite(IUnknown *pUnkSite)
{
 ...
    if (pUnkSite)
    {
        IOleWindow *pow;
        hr = pUnkSite->QueryInterface(IID_IOleWindow, reinterpret_cast<void **>(&pow));
        if (SUCCEEDED(hr))
        {
            hr = pow->GetWindow(&m_hwndParent);
            if (SUCCEEDED(hr))
            {
                WNDCLASSW wc = { 0 };
                wc.style         = CS_HREDRAW | CS_VREDRAW;
                wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
                wc.hInstance     = g_hInst;
                wc.lpfnWndProc   = WndProc;
                wc.lpszClassName = g_szDeskBandSampleClass;
                wc.hbrBackground = CreateSolidBrush(RGB(255, 255, 0));

                RegisterClassW(&wc);

                HWND ToolbarWindow = CreateWindowExW(WS_EX_TRANSPARENT,
                                g_szDeskBandSampleClass,
                                NULL,
                                WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
                                0,
                                0,
                                0,
                                0,
                                m_hwndParent,
                                NULL,
                                g_hInst,
                                this);
                
...
}

Код создания кнопки:
Код

LRESULT CALLBACK CDeskBand::WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    LRESULT lResult = 0;
    CDeskBand *pDeskBand = reinterpret_cast<CDeskBand *>(GetWindowLongPtr(hwnd, GWLP_USERDATA));
    HWND hwndButton;
    switch (uMsg)
    {
    case WM_CREATE:
        pDeskBand = reinterpret_cast<CDeskBand *>(reinterpret_cast<CREATESTRUCT *>(lParam)->lpCreateParams);
        pDeskBand->m_hwnd = hwnd;
        SetWindowLongPtr(hwnd, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(pDeskBand));
        hwndButton = CreateWindow (TEXT("BUTTON"), TEXT("Ok"),
                    WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,  // the styles
                    20,0,                                  // the left and top co-ordinates
                    100,20,                              // width and height
                    hwnd,       // parent window handle
                    (HMENU)123,  // the ID of your button
                    g_hInst,                              // the instance of your application
                    NULL) ;                        // extra bits you dont really need


        break;

PM MAIL   Вверх
hyp1k
Дата 27.2.2012, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 3.4.2008

Репутация: нет
Всего: нет



Какие-нибудь мысли есть?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0433 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.