int i=8;
char str[8]="пример";
Простой вопрос. Как вогнать текст в TextBox?
Код:
Надо все в строку одну записать:
"i=8 пример"
В Buildere это выглядит так:
Код:
Edit1->Text=Edit1->Text="i="+IntToStr(i)+" "+str;
А в MSVC++ как записать в TextBox?
В частности, интересует функция перевода в текст числовой переменной и ваще какой тип у свойства TextBox->Text?
А функций перевода числа в строку полно.
Хоть sprintf с таким же шаблоном как у printf только пишет в строку (char *), хоть
Код:
ostringstream strStream;
strStream << 20;
strStream.str()
strStream << 20;
strStream.str()
Хоть если MFC пользуешся, что вероятно, то у CString есть метод Format, аналогичный sprintf.
Код:
CString str;
str.Format("%d",s);
str.Format("%d",s);
И по поводу вопроса вобще. Что C Builder, что Visual C++ - это всего лишь средства разработки для одного и того же языка, а не отдельные языки. Не корректно писать, что в билдере такой код, а тут другой. Там просто пользуешся одной библиотекой, тут видимо другой (MFC например). Вот это и надо писать, чтоб тебя поняли - чем пользуешся.
Функции с/с++ я не хочу использовать. Это на крайний случай. Хочу чтоб код получался таким же компактным как и в Buildere(точне в куске кода котор. написал). Для чего и привел соответствующий кусок сдесь. Кто умеет работать на Buildere и MSVC тому сразу станет ясен ответ. А я не умею в MSVC работать, ибо недавно начал. Поэтому и вопрос могу задать не очень корректно. Тип метода TextBox->Text вроде бы String. Но я не уверен. Вот хотел бы утачнить. И чтоб подсказали еще функцию возврата указателя на тип char из него, чтоб обратно можно было чистый текст типа char получить.
Ну это попробую объяснить.
Есть диалоговый проект.
В определении функции DoDataExchange(CDataExchange* pDX) добавляется строка
DDX_Text(pDX, IDC_EDIT1, m_strMessage);
у меня это так:
Код:
void CHelloDialogDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_strMessage);
}
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_strMessage);
}
здесь значит что поле ввода эл-та управления id которого IDC_EDIT1 (смотри в properties эл-та управления, щелкаешь правой кнопкой на эл-те выбираешь properties ) связывается с переменной m_strMessage (String) , вообще это не переменная а public свойство класса CHelloDialogDlg, которое можно самостоятельно добавить такой строчкой
public:
String m_strMessage;.
Еще есть кнопка OK в моем диалоге
Код:
void CHelloDialogDlg::OnBnClickedOk()
{
UpdateData();
// UpdateData(TRUE); - перенос значения из поля в m_strMessage
// UpdateData(FALSE); - перенос значения из m_strMessage в поле edit`a
AfxMessageBox(m_strMessage);
// OnOK();
}
{
UpdateData();
// UpdateData(TRUE); - перенос значения из поля в m_strMessage
// UpdateData(FALSE); - перенос значения из m_strMessage в поле edit`a
AfxMessageBox(m_strMessage);
// OnOK();
}
В итоге при щелчке на кнопке ок у тебя появится сообщение с текстом из поля ввода.
itoa(m_int,text,10);
далее:
int i = 8;
char* str = " пример";
char num[24];
itoa(i, num, 10);
char sum[32] = "";
strcat(sum, num);
strcat(sum, str);
m_MyEdit.SetWindowText(sum);