Проблема с modeless PropertySheet
От: Аноним  
Дата: 20.05.03 14:54
Оценка:
Помогите чайнику!
Создаю немодальный propertysheet на диалоговом окне. Есть несколько контролов на propertypage и несколько на главном диалоге. Фича состоит в том, что в случае, когда фокус находится на контроле на propertypage, и диалог накрывается другим окном, диалог подвисает. Spy++ дает поток WM_GETDLGCODE с кодом возврата 0000 на окошко proprtysheet(или page, там не разберешь), при этом попытка снять задачу из дебугера при работающем Spy вешает уже все, только мышка живет.
Код, который был добавлен к стандартному dialogbased проекту, буквально следующее:
в MyDialog.h
public:
    CPropertySheet m_PS;
    CPP m_Page1;



в CMyDialog::OnInitDialog
        m_Page1.m_psp.dwFlags|=PSP_USETITLE ; 
        m_Page1.m_psp.pszTitle="File info" ;

        m_PS.AddPage(&m_Page1);
    if (!m_PS.Create(this,
            DS_CONTEXTHELP | DS_SETFONT | WS_CHILD | WS_VISIBLE))
            {
                DestroyWindow();
                return FALSE;
            }
    m_PS.SetWindowPos(NULL, 10, 10,0, 0,
            SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOSIZE);


В редакторе дилогов добавлено по editcontrol на страницу и на главное окно.

Подскажите, если это фича, то где я неправ?
Если это все же баг, то как его обойти?
Re: Проблема с modeless PropertySheet
От: aDusha  
Дата: 22.05.03 12:35
Оценка: 4 (2)
А>Подскажите, если это фича, то где я неправ?
А>Если это все же баг, то как его обойти?

Это оказалась фича
http://www.codeguru.com/propertysheet/inside_dialog.shtml


А>
А>    if (!m_PS.Create(this,
А>            DS_CONTEXTHELP | DS_SETFONT | WS_CHILD | WS_VISIBLE))
А>            {
А>                DestroyWindow();
А>                return FALSE;
А>            }
            m_PS.ModifyStyleEx (0, WS_EX_CONTROLPARENT);    

А>


Кстати, в хелпе, откуда все было списано, про эту фичу ни слова.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.