char szText[32] = {0};
strcpy(szText, "Hello\r\nWorld");
::SetDlgItemText(m_hWnd, IDC_EDIT1, szText);
Новая строка в Edit
SetDlgItemText(hMainDlg, IDC_EDIT1,"tratata\r\ntyrpyr");
- для константных данных такая процедура работает правильно:
tratata
tyrpyr
Если же я передаю третьим параметром указатель на массив char, то edit мне выдает tratata\r\ntyrpyr, как же мне отобразить текст содержащий переносы на новую строку?
Вот это работает нормально
Код:
Так вот, буфер содержит данные такого формата: "Hello\r\nWorld\r\ntrampampan\r\nитд");
где знаками \r\n разделены строки, прочитанные из однострочного эдита.
Так вот SetDlgItemText(hMainDlg, IDC_EDIT1, Text); выдает Hello\r\nWorld\r\ntrampampan\r\nитд, в то время как если я пишу
char* Text = "Hello\r\nWorld\r\ntrampampan\r\nитд"
SetDlgItemText(hMainDlg, IDC_EDIT1, Text);
Все работает правильно, выводятся 4 строки.
щас попробую strcpy
Сейчас после каждой скопированной строки делаю так:
strcpy(Text+CurrentPos,"\r\n");
После каждой строки этой командой вставляется код 13, насколько я понял это код enter. Но теперь все строки выводятся слитно tratatatyrpyr, код 13 вообще никак не ощущается.
Никак ни возьму в толк, как у вас вышло Hello\r\nWorld.
Даже если сделать Edit однострочным все равно выйдет так Helloздесь два квадратаWorld.
strcpy и константность здесь роли не играет. Почему-то у меня подозрения что в коде есть что-то вроде этого
Код:
strcat(....., "\\r\\n")
P.S. уверены что CurrentPos определяется верно?
CurrentPos += n;
strcpy(Text+CurrentPos,"\r\n"); //здесь поместился код 13
CurrentPos+=1; // поэтому +1
SetDlgItemText(hMainDlg, IDC_EDIT2,Text);
Все заработало когда немного поправил
int n = GetDlgItemText(hMainDlg, IDC_EDIT1, Text+CurrentPos, 256);
CurrentPos += n;
strcpy(Text+CurrentPos,"\r\n"); //Там оказывается после кода 13 еще идет
CurrentPos+=2; //код 10, а я его затирал
SetDlgItemText(hMainDlg, IDC_EDIT2,Text);
/////////////////////////
А вначале действительно было что-то вроде strcat(....., "\\r\\n"), потому что я \r\n получал заполнением кодами:
Text[CurrentPos] = 92;
CurrentPos++;
Text[CurrentPos] = 114;
CurrentPos++;
Text[CurrentPos] = 92;
CurrentPos++;
Text[CurrentPos] = 110;
CurrentPos++;
Text[CurrentPos] = 0;
А это неправильно
Все заработало правильно, спасибо
Просто не знал, что "\r" и "\n" преобразуются в коды, думал, что все представляется как есть, теперь ясно.