Помогите чайнику!
Создаю немодальный 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 на страницу и на главное окно.
Подскажите, если это фича, то где я неправ?
Если это все же баг, то как его обойти?
А>Подскажите, если это фича, то где я неправ?
А>Если это все же баг, то как его обойти?
Это оказалась фича
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);
А>
Кстати, в хелпе, откуда все было списано, про эту фичу ни слова.