EDIT Control показывает квадраты вместо возвратов - PullRequest
1 голос
/ 15 апреля 2010

Я немного играю с PocketC , выполняя простой текстовый редактор. Но с этим кодом для чтения и отображения содержимого файла на элементе управления EDIT:

int filehandle;
int file_len;
string file_mode;

initComponents()
{
    createctrl("EDIT", "test", 2, 1, 0, 24, 70, 25, TEXTBOX);
    wndshow(TEXTBOX, SW_SHOW);
    guigetfocus();
}

main()
{
    filehandle = fileopen(OpenFileDlg("Plain Text Files (*.txt)|*.txt; All Files (*.*)|*.*"), 0, FILE_READWRITE);
    file_len = filegetlen(filehandle);

    if(filehandle == -1)
    {
        MessageBox("File Could Not Be Found!", "Error", 3, 1);
    }

    initComponents();
    editset(TEXTBOX, fileread(filehandle, file_len));
}

Все нормально, но мой тестовый файл теперь возвращает:

Hello, World!
PocketC
Test Of My Editor

Затем, когда я открываю этот файл в редакторе, вместо возврата, я просто вижу два квадрата (это означает, что это неизвестный символ для этого элемента управления), но если я изменяю элемент управления на STATIC, он делает возвращает нормально, но я не могу редактировать текст, если я использую STATIC. Затем я хочу знать, что мне нужно сделать, чтобы получить результаты вместо того, чтобы показывать эти квадраты.

Кроме того, это поле (EDIT) похоже на TextField, я не могу сделать возврат по нему, тогда я хочу знать, как это изменить тоже.

Ответы [ 2 ]

1 голос
/ 15 апреля 2010

Я не знаю PocketPC, но элементам управления Windows требуется стиль ES_MULTILINE, чтобы правильно отображать многострочный текст.

1 голос
/ 15 апреля 2010

Я ничего не знаю о PocketC, но в целом вы получаете такое поведение, если символы переноса строк, используемые в данных, не соответствуют собственным разрывам строк в ОС. Например, если данные используют CRLF, где ОС ожидает пустой CR или пустой LF, или наоборот. Поскольку вы видите два квадрата, проверьте, используют ли данные файла LFCR, CRCR или LFLF вместо CRLF.

...