Вопрос по C+

Статус: Offline
Реєстрація: 19.08.2006
Повідом.: 2283
Вопрос по C+

Учу с++. Тренируюсь с диалоговыми окнами. Задача следующая: в пределах жизни текущего диалога необходимо извлечь текстовую строку в переменную типа CString из поля EDIT и потом, к примеру, поместить её в другой EDIT. То, как у меня получилось это реализовать, несколько громоздко. Есть ли способ попроще в стиле делфи или VB? :)
Код:
        UINT textlen=Edit01.LineLength();
	LPTSTR ptext1=new wchar_t[textlen+1];
	Edit01.GetLine(0,ptext1, textlen+1);
	ptext1[textlen]='\0';
	CString text1(ptext1,textlen+1);
	delete ptext1;
	AfxMessageBox(text1);
	Edit02.SetWindowTextW(text1);
 
Останнє редагування:
Во первых LPTSTR в общем случае не равно wchar_t*. Так что либо визде wchar_t либо TCHAR.
Во вторых в МФЦ насколько мне помнится - нет другого способа. Есть в других библиотеках, например АТЛ или ВТЛ.
 
Бросай MFC, переходи на WinAPI :D

char Buf[MAX_BUF];

GetDlgItemText( hDlg, IDC_XXX, Buf, MAX_BUF);
SetDlgItemText( hDlg, IDC_YYY, Buf);
 
Код:
        UINT textlen=Edit01.LineLength();
	LPTSTR ptext1=new wchar_t[textlen+1];
	Edit01.GetLine(0,ptext1, textlen+1);
	ptext1[textlen]='\0';
	CString text1(ptext1,textlen+1);
	delete ptext1;
	AfxMessageBox(text1);
	Edit02.SetWindowTextW(text1);

епт.... :eek: и это чтоб скопировать из одного edit в другой.... :D Зачем это вы решили изучать технологию позавчерашнего века?
 
епт.... :eek: и это чтоб скопировать из одного edit в другой.... :D Зачем это вы решили изучать технологию позавчерашнего века?
А что есть альтернатива винапи? Ну да в 8 возможно это будет метросексуальные компоненты, на всех остальных ОС хоть с КуТи хоть с шарпом альтернатив нету. Точнее они есть - высокоуровневые УИ фреймворки, но они могут далеко не все и как никрути без винапи никуда ;)
 
Edit01.GetLine(0,ptext1, textlen+1);
ptext1[textlen]='\0';
Более правильно будет:
int copied_count = Edit01.GetLine(0,ptext1, textlen+1);
ptext1[copied_count]='\0';

А вообще есть конечно более простой механизм копирования,:
CWnd* pWnd = GetDlgItem(IDC_MYEDIT);
CString str;
pWnd->GetWindowText(str);
pWnd->SetWindowText(str);
Но конечно же гораздо проще блеять о "технологиях позавчерашнего века"...
 
А что есть альтернатива винапи? Ну да в 8 возможно это будет метросексуальные компоненты, на всех остальных ОС хоть с КуТи хоть с шарпом альтернатив нету. Точнее они есть - высокоуровневые УИ фреймворки, но они могут далеко не все и как никрути без винапи никуда ;)

Ну я про тот вышеприведенный код ;). Винапи конечно никто не отменял, т.к. фундаментальные принципы работы винды не поменялись, но если реально прикинуть, то кто с нуля будет виндовое приложение сейчас писать на чистом винапи? Если говорить конкретно про винду, то мне и в голову не приходит чего нельзя к примеру сделать с помощью .NET.
 
Кстати, а сегодня вообще ещё пишут на "оригинальном" с++ (я имею ввиду не CLI)? Если да, то что именно? Может я зря за него взялся...
 
Кстати, а сегодня вообще ещё пишут на "оригинальном" с++ (я имею ввиду не CLI)? Если да, то что именно? Может я зря за него взялся...

Имхо зря, то что сейчас пишут, ты не потянешь, а джуны по c++ сейчас уже не нужны. Ну разве что в совковую контору на 1500 грн
 
Я пишу на Qt/C++. ТС советую смотреть в эту сторону, для начала как раз самое оно, СБилдер насколько я в курсе особо уже не популярен, да и громоздкий и неповоротлив в последних версиях + нет толковой кроссплатформенности.
 
Кстати, а сегодня вообще ещё пишут на "оригинальном" с++ (я имею ввиду не CLI)? Если да, то что именно? Может я зря за него взялся...
даже на голом С пишут - mysql, Apache, PHP, компиляторы и т.д.
Я пишу на Qt/C++. ТС советую смотреть в эту сторону, для начала как раз самое оно, СБилдер насколько я в курсе особо уже не популярен, да и громоздкий и неповоротлив в последних версиях + нет толковой кроссплатформенности.

QT это просто библиотека а CBuilder - среда быстрой разработки. А кросплатформенность нужна далеко не всегда. Нет более быстрого способа написать нативное приложение чем Delphi/CBuilder.
 
Я пишу на Qt/C++. ТС советую смотреть в эту сторону, для начала как раз самое оно

На сколько я понял на Qt пишут в основном для симбиана? Так а симба походу доживает свои последние дни...
 
нокия купила куте около трех лет назад, а до этого и до сих пор на куте пишут в основном для десктопа. и немного для симбиана или миго
 
Назад
Зверху Знизу