Premnath Mali Ответов: 2

Как получить доступ к переменной-члену родительского диалога?


У меня есть переменная-член
NOTIFYICONDATA niData;
в моем родительском диалоге для отображения системного трея.

И у меня есть дочерний диалог студент на котором у меня есть одна кнопка AddStudent

Я хотел использовать niData в своем событии click AddStudent для отображения боллона т. е.
- Добавил новый ученик..."

Как мне это сделать?

Что я уже пробовал:

void CStudent::SaveData()
{
	Student s1;
	CString sname,id,sclass,m;
	m_txtStudentName.GetWindowTextW(sname);
	m_txtStudentId.GetWindowTextW(id);
	m_txtClass.GetWindowTextW(sclass);

	sprintf(s1.sname,"%S",sname);
	sprintf(s1.id,"%S",id);
	sprintf(s1.sclass,"%S",sclass);
	
	bool flag=ValidateData(s1,&m);

	if(flag)
	{
		CFile write(L"student.txt",CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate);
		write.SeekToEnd();
		write.Write(&s1,sizeof(s1));
		write.Close();
		LoadDataToList();
		ClearFields();
		//Here I wanted to access niData which is declared in parent dialog to show system tray bollon that "New Student added"

	}
	ShowMessage(m);
	
}


void CStudent::OnBnClickedAdd()
{
	// TODO: Add your control notification handler code here
	SaveData();
	
}

2 Ответов

Рейтинг:
2

Premnath Mali

Из сохраненных данных я передал сообщение в родительский Диалог

GetParent()->SendMessage(WM_USER + 558);


И в Родительском диалоге я поймал это сообщение и справился с ним

ON_MESSAGE(WM_USER+558, OnStudentAdd)


LRESULT CDialogControlDlg::OnStudentAdd(WPARAM wparam, LPARAM lparam)
{
	_tcscpy(niData.szInfoTitle,L"New Record Inserted!");
	_tcscpy(niData.szInfo,L"New Student Added.....");
	niData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP |NIF_INFO;
	niData.uTimeout=500;
	Shell_NotifyIcon(NIM_MODIFY, &niData);
	return 0;
}


Рейтинг:
16

OriginalGriff

Не делайте этого таким образом - это ограничивает ребенка работать только с определенным родителем, и это очень плохой дизайн, и очень плохой Упс.
Вместо этого добавьте в дочерний диалог событие, которое может обработать родитель. Ребенок вызывает событие "ученик добавлен", и родитель делает с информацией то, что хочет.


Premnath Mali

Спасибо!!!