обновляет содержимое элементов управления на экране 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

обновляет содержимое элементов управления на экране

Поиск

m_dCoordinate=0;

m_bDefaultCoords=TRUE;

UpdateData(FALSE);

//обновляет содержимое элементов управления на экране

}

 

Создадим обработчик извещения EN_KILLFOCUS, возникающего при потере фокуса элементом редактирования:

View->ClassWizard->Message Maps->ClassName:"CDFPDialog"->

Object IDs:"IDC_DIMENSION"->Messages:"EN_KILLFOCUS"->

Add Function->Ok->Edit Code

 

В появившуюся функцию OnKillFocusDimension впишем:

 

void CDFPDialog::OnKillfocusDimension()

{   

UINT old_dim=m_iDimension;

if (!UpdateData(TRUE))

{

    m_iDimension=old_dim;

    UpdateData(FALSE);

}

if (m_iDimension!=old_dim) ResetCoordList();

}

 

Аналогично создаем обратную связь от редактора координаты к списку по извещению EN_KILLFOCUS, чтобы записать имеющееся в редакторе значение в текущий элемент списка. В предлагаемую ClassWizardом функцию OnKillfocusEditCoordinate впишем:

 

void CDFPDialog::OnKillfocusEditCoordinate()

{

    if (UpdateData(TRUE))

    {

         CString s;

         s.Format("%lg",m_dCoordinate);

         int i= m_cCoordList.GetCaretIndex();

         m_cCoordList.DeleteString(i);

         i=m_cCoordList.InsertString(i,s);    

         if ((i==LB_ERR)||(i==LB_ERRSPACE))

         {

         ::AfxMessageBox("Error while updating the list!",

                   MB_OK|MB_ICONSTOP);

              EndDialog(1);

         }

         m_bDefaultCoords=FALSE;

    }

    UpdateData(FALSE); // Обновляем диалог на экране

}

 

Создадим обработчик извещения LBN_SELCHANGE, возникающего при смене выбранного элемента в списке:

View->ClassWizard->Message Maps->ClassName:"CDFPDialog"->

Object IDs:"IDC_COORDLIST"->Messages:"LBN_SELCHANGE"->

Add Function->Ok->Edit Code

 

В появившуюся функцию OnSelchangeCoordList пишем:

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 44; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.01 с.)