|
m_pView->Invalidate();
}
И модифицируем метод
void CLab8View::OnDraw(CDC* pDC)
{
CLab8Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDoc->S1=m_pDiln->m_tx2;
pDC->TextOut(0,0,pDoc->S1);
}
Если все сделали правильно, то будет не модальное окошко и по нажатию кнопочки передаваться значение из окошка, и оно отображаться в виде. Если не правильно то куча ошибок.
Одно не хорошее теперь параметр от нашего модального окна не передается. Как выйти из ситуации?
Можно предложит выход введя перемену в класс вида k1=0; в конструктор и дальше в методе void CLab8View::OnMedialMydial1()
{ Dil1 d1;
k1=1; - присвоили значение
CLab8Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
d1.DoModal();
pDoc->S1=d1.m_tx1;
Invalidate();
}
А в методе
void CLab8View::OnDraw(CDC* pDC)
{
CLab8Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (k1==0)
pDoc->S1=m_pDiln->m_tx2;
pDC->TextOut(0,0,pDoc->S1);
k1=0;
}
Чтобы избежать ошибки и запретить второй раз выводить не модальное окно можно ввести еще одну переменную int k2; в конструкторе k2=0;
В методе вызова диалога
void CLab8View::OnMedialMydial2()
{
if (k2==0)
{m_pDiln->Creat();
k2=1;}
}
И в методе ликвидации окна
LONG CLab8View::OnEnd1(UINT wParam, LONG lParam)
{
m_pDiln->DestroyWindow();
k2=0;
return 0;
}
Предложите еще метод передачи данных
Например через сообщение
Введем сообщение
#define WM_125 WM_USER + 20
В файл Diln.h
Делаем еще одну кнопку в окне диалога
void Diln::OnButton2()
{ UpdateData(1);
m_pView->PostMessage(WM_125);
}
В классе вид добавляем в таблицу сообщений новое сообщение
ON_MESSAGE(WM_END, OnEnd1)
Дата добавления: 2015-07-19; просмотров: 63 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пояснения к лабораторной работе №8 | | | Сумму выплаченных денег каждым покупателем; |