Как передать сообщение в Edit control в MFC
Возник тупой, но важный вопрос: Пытаюсь делать чат на winsock и MFC. Вынес реализацию сервера в отдельный файл, но не понимаю одного: как передать сообщение (к примеру: соединение установлено) в блок Edit control. Указатель какой-то сделать нужно на класс или переменную элемента управления этого блока?
{
//Основные константы
const char IP_SERV[] = "127.0.0.1"; // Локальный IP сервера
const int PORT_NUM = 156; // Порт
const short BUFF_SIZE = 1024; // Буфер обмена клиента / сервера
int erStat;
//конверт из IP в строку
in_addr ip_to_num;
erStat = inet_pton(AF_INET, IP_SERV, &ip_to_num);
int *dlg;
if (erStat <= 0) {
AfxMessageBox(L"Ошибка преобразования IP адреса",MB_OK);
//вместо всплывающего окна хочу вывести сообщение в самом окне приложения
return 1;
} else AfxMessageBox(L"Установлен IP адрес", MB_OK);
Код самого поля:
void COneMoreChatDlg::OnEnChangeSysteminfo()
{
}
Ответы (2 шт):
CString cstr="соединение установлено"
SetDlgItemText(IDC_, cstr);
Вроде такого?
Нужно получить доступ к элементу диалога. Если, например, программа называется "Proga", то через CProgaDlg pDlg(т.е CИмя_проекта*Dlg) можно получить доступ к элементам на окне. В MFC принято называть переменные управления с префиксом "m_", т.е если нужно окно для информации, то стоит обозвать его как m_Info. Теперь, когда к элементу(в нашем случае Edit control) добавлена переменная управления m_Info, можно обращаться к ней из под указателя на класс с "диалогом". pDlg->m_Info.replaceSel(L"Соединение установлено").
Можно пойти иным путём и получить доступ к этому окну через GetDlgItem, но про него говорить не буду, т.к сам пользуюсь способом описанным выше
