hWin, //Номер окна приемника
WM_COPYDATA, //Отправить с помощью сообщения WM_COPYDATA
(WPARAM)hWin, //Номер окна приемника
(LPARAM)&cdsStruct //Указатель на структуру для отправки
))
throw "Error sending message"; //Сообщение не отправлено
GlobalUnlock(hMem); //Разблокировать память
GlobalFree(hMem); //Удалить блок памяти
}
catch(char * error) //Обработка собственных исключительных ситуаций
{
AfxMessageBox(error,MB_ICONERROR,0);
}
catch(CException * e) //Обработка стандартных исключительных ситуаций
{
char lpszError[255];
e->GetErrorMessage(lpszError,sizeof(lpszError));
e->Delete();
AfxMessageBox(lpszError,MB_ICONERROR,0);
}
catch(...) //Обработка остальных исключительных ситуаций
{
AfxMessageBox("Unexpected error. Please send report to john@kpi.kharkov.ua\n",MB_ICONERROR,0);
}
}
5. Создаем обработчик кнопки IDC_BUTTONCAPTION и модифицируем его
void CSenderDlg::OnButtoncaption()
{
CString strCaption;
GetDlgItemText(IDC_EDIT2,strCaption); //Получить текст из второй строки редактирования
SetWindowText(strCaption); //Установить заголовок окна
}
6. Создаем второе диалоговое приложение:
Выполняем File/New. Выбираем закладку Projects. MFC App wizard(exe). Называем приложение Receiver. Выбираем радио элемент “Add to current workspace”. Нажимаем OK и создаем диалоговое приложение с окном как на рисунке.
Для переключения между проектами на закладке “Class View” на требуемом проекте нажимаем правую кнопку мыши и выбираем “Set as active project”.
7.Создаем обработчик сообщения WM_COPYDATA.
Запускаем View/Class Wizard и, убедившись, что в комбобоксе «Class name» выбран класс диалогового окна, находим в списке «Messages» сообщение WM_COPYDATA. Создаем для него обработчик и модифицируем его.
BOOL CReceiverDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
CString strReceived;
CString strSenderCaption;
CWnd *wnd;
try{
wnd=CWnd::FromHandle((HWND)pCopyDataStruct->dwData); //Получить указатель на окно отправитель
wnd->GetWindowText(strSenderCaption); //Получить заголовок окна отправителя
strReceived.Format("Sender:%s\nReceived bytes:%d\nReceived text:%s\n",//Сформировать текст диалогового окна
strSenderCaption,
pCopyDataStruct->cbData, //Количество байт сообщения
pCopyDataStruct->lpData); //Данные сообщения
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.