SetLimitText () в CEdit в Vista не работает

Я продолжал смотреть, откуда запускалось приложение, извините за это.

Безусловно, самое простое решение - установить статическую папку в другую папку:

app = Flask(__name__, static_folder='../static')

Я только что попробовал, и это должно работать без проблем.

Вы можете найти свой файл здесь:

http://127.0.0.1:5000/static/images/smiley.png

Ваш файл пакета будет здесь:

http://127.0.0.1:5000/static/dist/bundle.js

Вы ошибка шаблона, потому что у вас нет папки с шаблонами, которая обычно называется tempates. Поэтому создайте подпапку с именем templates в вашей папке server. Затем не указывайте аргумент template_folder в строке app = Flask(..), но оставьте его app = Flask(__name__, static_folder='../static').

Если по какой-то причине вы хотите отделить свою статику от ваших публичных файлов и также иметь маршрут /public, вы можете попробовать следующий подход:

@app.route("/public/<path:path>")
def get_public_file(path):
    full_path = os.path.join('../static/dist/public/', path)
    head, tail = os.path.split(full_path)
    return send_from_directory(head, tail)

Затем вы можете получить доступ к смайлику в fullstack_template/static/dist/public/images/smiley.png, перейдя в http://127.0.0.1:5000/public/images/smiley.png.

6
задан rec 15 October 2008 в 21:58
поделиться

3 ответа

Я связался с поддержкой microsof.

Цель состояла в том, чтобы иметь приблизительно 240 000 символов в одной единственной доступной для редактирования строке текста.

Я могу воспроизвести проблему о Windows Vista (x64 и x32 оба), но не о Windows XP.

этот код хорошо работает в XP:

 BOOL ClongeditXPDlg::OnInitDialog()
 {
     CDialog::OnInitDialog();

     // Set the icon for this dialog.  The framework does this automatically
     //  when the application's main window is not a dialog
     SetIcon(m_hIcon, TRUE);            // Set big icon
     SetIcon(m_hIcon, FALSE);        // Set small icon

     // TODO: Add extra initialization here
     UINT limit = m_longEdit.GetLimitText();
     m_longEdit.SetLimitText(240000);
     UINT limit2 = m_longEdit.GetLimitText();

     CString str;
     str = _T("");
     for(int i = 0; i < 250000; i++)
         str += _T("a");

     m_longEdit.SetWindowText(str);

     return TRUE;  // return TRUE  unless you set the focus to a control
 }

Если я использую управление CRichEdit вместо этого, когда я нажимаю "конец" ключ ключевой или "стрелки вправо" после вставки длинной строки внутри, я не вижу всех символов в Богатых Средствах редактирования. попытка прокрутить мимо последнего видимого символа производит звуковой сигнал. Остальная часть символов там, я знаю это, потому что, если я дважды щелкаю по Rich Edit Control и копирую текст с помощью ctrl-c и затем вставляю ее на текстовом редакторе, я вижу эти 240 000 символов. Таким образом, управление содержит правильное количество символов, но последние знаки не видимы кроме внешнего редактора, таким образом, моя исходная проблема остается.

Вот ответы представителей Microsoft:

Проблема здесь состоит в том, что средства редактирования с большим количеством символов в нем не красят свой текст.

Я попытался установить различные символы и обнаружил, что мог соответствовать большему количеству 'l's, чем 'x's, чем 'm's. Проблема не является непосредственно количеством символов, но вероятна число пикселей. Умножение количества видимых символов пиксельной шириной символов в выбранном шрифте показывает, что предел о 32k пикселях.

другой ответ от Microsoft:

Я провел обширное исследование по этой проблеме и хотел бы обновить Вас о прогрессе случая.

Главная разница между Средствами редактирования на Vista и на XP - то, что Средства редактирования на Vista предварительно составляют свои глифы для лучшей международной поддержки (внутренне, это заканчивает тем, что назвало ExtTextOut с ETO_GLYPH_INDEX и массивом глифов, а не строкой символов. Это заканчивает тем, что сохранило индексы глифа в метафайл и так сталкивается с 32k пиксельным пределом. Когда слишком много символов обеспечиваются, ExtTextOut приводит к сбою и ничего не тянет. Средства редактирования на XP не предварительно составляют глифы и так не имеют этой проблемы, но не обработают международные символы также.

Средства редактирования на XP отсекут в 32k, но так как это является внеэкранным, это не очевидно. При прокрутке направо, это запускается с первого видимого символа, таким образом, видимая часть управления всегда ранее, чем 32k пиксели.

Управление RichEdit тянет начало, но после совершающего нападки Конца, редактирования происходят главным образом вне экрана. RichEdit 3.0 и 4.1 дает подобное поведение. Это, кажется, 32k пиксельный предел управления RichEdit, поскольку это рисует свой текст на внеэкранном битовом массиве прежде, чем отобразить его на экран.

Рассматривая эти вопросы, поведение дизайном. Необходимо было бы создать собственное управление для получения поведения отображения как большая строка как 240 000 в одной строке.

и последний:

Я провел дальнейшее исследование по этой проблеме для нахождения любого обходного решения легкого веса для преодоления 32k пиксельный предел, но к сожалению кажется, что нет никакого обходного решения для этого.

Несколько альтернатив, которые мы попробовали, являются RichEdit 3.0, RichEdit 4.1, с помощью UniScribe, с помощью различных шрифтов и т.д., но ни один из них, кажется, не удовлетворяет требование.

Возможно, необходимо было бы создать собственное управление, если Вы хотите отобразить доступную для редактирования однострочную строку, которая превышает 32k пиксельный предел в Windows Vista.

5
ответ дан 17 December 2019 в 02:35
поделиться

К вашему сведению - если текст является read-only/dsiplay только, можно добавить некоторый CR-LFs к строке для фиксации дисплея текста. Кажется, что ExtTextOut функционируют работы, немного отличающиеся когда новые строки. Так как это - однострочное окно редактирования, новые строки разделяются так, текст выглядит одинаково - если Вы не скопируете и вставляете его, затем переводы строки будут в строке...

1
ответ дан 17 December 2019 в 02:35
поделиться

Не должно быть никаких проблем только с 6 000 символов - возможно, проблема в другом месте? У Вас есть какие-либо обработчики для измененных событий/уведомлений от текстового поля? Возможно, они зависают?

0
ответ дан 17 December 2019 в 02:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: