Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CDialogBar messages


Автор: ShurikA 24.7.2006, 11:44
У меня относительно элемнтарный вопрос (но сам запутался)...
Как управлять контролями CDialogBar? 

Автор: Earnest 24.7.2006, 13:21
Что значит - управлять? Заполнять \ получать значения полей? Дизаблить и получать уведомления от контролов? 

Автор: ShurikA 24.7.2006, 14:17
В Общем да...
Но больше всего меня волнует: 
Когда я выбираю что то в КомбоБоксе который находится в CDialogBar, мне на каким образом не удаётся убрать с него фокус... 

Автор: Coocky 24.7.2006, 16:31
Я (во времена своей бурной молодости на МФС) делал так:
1.Создавал свой класс, производной от CDialogBar (class CMyDlgBar : public CDialogBar)
2. Перехватывал сообщение WM_INITDIALOG
Код

BEGIN_MESSAGE_MAP(CMyDlgBar, CDialogBar)
    //{{AFX_MSG_MAP(CMyDlgBar)
    //}}AFX_MSG_MAP
    ON_MESSAGE(WM_INITDIALOG, OnInitDialog )
END_MESSAGE_MAP()

3. Обрабатывал его
Код

LONG CMyDlgBar::OnInitDialog ( UINT wParam, LONG lParam)
{

            BOOL bRet = HandleInitDialog(wParam, lParam);

            if (!UpdateData(FALSE))
            {
               TRACE0("Не удалось инициализировать Диалог бар!");
            }

            return bRet;

}

Ну и привязывал обьекты своих контролов
Код

BOOL CMyDlgBar::Create(CWnd* pParent, UINT nIDTemplate, UINT nStyle, UINT nID) 
{
    // TODO: Add your specialized code here and/or call the base class
    
    BOOL bReturn = CDialogBar::Create(pParent, nIDTemplate, nStyle, nID);

    if(bReturn)
    {
        my_ListBox.SubclassDlgItem(IDC_LISTBOX, this);// вот и вся фича субклассирования окна..
    }

    return bReturn;
}


Добавлено @ 16:33 
Да, забыл про механизм DDE smile 
Код

void CMyDlgBar::DoDataExchange(CDataExchange* pDX)
{
    CDialogBar::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CMyDlgBar)
    DDX_Control(pDX, IDC_LISTBOX, my_ListBox);
    //}}AFX_DATA_MAP
}
 

Автор: ShurikA 24.7.2006, 16:43
Спасибо, я сделал немного по другому, но принцип понят. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)