WTL и PropertyPage
От: eugeneugene Россия  
Дата: 28.05.04 09:04
Оценка:
Здравствуйте, уважаемые!

Дано:

class CPageAccount : public CPropertyPageImpl<CPageAccount>,
    public CWinDataExchange<CPageAccount>
{
public:
    // Много вырезано за ненадобностью
    // Class constructor
    CPageAccount(ATL::_U_STRINGorID title = (LPCTSTR)NULL) :
        m_strTitle(title.m_lpstr)
    {
        CPropertyPageImpl<CPageAccount>((LPCTSTR)m_strTitle);
    }
private:
    CString m_strTitle;
};

// Табы добавляются динамически в цикле
// примерно так
CPageAccount *p;
CString strTitle;
strTitle.Format(IDD_PROP_PAGE_MAIL, i);
p = new CPageAccount((LPCTSTR)strTitle);
AddPage(*p);


Проблема:
Не назначается заголовок таба. После выполнения конструктора CPageAccount значение m_psp.pszTitle остается равным NULL. Такое ощущение, что у CPageAccount и CPropertyPageImpl разные версии m_psp.

И наконец вопрос: В чем я не прав и что нужно сделать, что бы оно заработало?
Заранее благодарен
Eugene
... << RSDN@Home 1.1.3 stable >>
Re: WTL и PropertyPage
От: KaSA  
Дата: 28.05.04 09:32
Оценка:
Здравствуйте, eugeneugene, Вы писали:

E>Здравствуйте, уважаемые!


E>Дано:


E>
E>class CPageAccount : public CPropertyPageImpl<CPageAccount>,
E>    public CWinDataExchange<CPageAccount>
E>{
E>public:
E>    // Много вырезано за ненадобностью
E>    // Class constructor
E>    CPageAccount(ATL::_U_STRINGorID title = (LPCTSTR)NULL) :
E>        m_strTitle(title.m_lpstr)
E>    {
E>        CPropertyPageImpl<CPageAccount>((LPCTSTR)m_strTitle); А это что такое? Объявление экземпляра? :)
E>    }
E>private:
E>    CString m_strTitle;
E>};

E>// Табы добавляются динамически в цикле
E>// примерно так
E>CPageAccount *p;
E>CString strTitle;
E>strTitle.Format(IDD_PROP_PAGE_MAIL, i);
E>p = new CPageAccount((LPCTSTR)strTitle);
E>AddPage(*p);

E>


E>Проблема:

E>Не назначается заголовок таба. После выполнения конструктора CPageAccount значение m_psp.pszTitle остается равным NULL. Такое ощущение, что у CPageAccount и CPropertyPageImpl разные версии m_psp.

E>И наконец вопрос: В чем я не прав и что нужно сделать, что бы оно заработало?

E>Заранее благодарен
E>Eugene


Так надо:
CPageAccount(ATL::_U_STRINGorID title = (LPCTSTR)NULL) :
    CPropertyPageImpl<CPageAccount>(title.m_lpstr);
{
}

...


AddPage(p->Create());
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.