Printf стирает экран (используя библиотеку MoSync)

У меня есть простой код, который выглядит следующим образом:

printf("Press zero or back to exit\n");
maSetColor(0x0055ff);
maFillRect(10,10,100,100);
maUpdateScreen();

Это работает, но когда это так:

maSetColor(0x0055ff);
maFillRect(10,10,100,100);
maUpdateScreen();
printf("Press zero or back to exit\n");

printf стирает экран.

Почему это? Это нормальное свойство printf()? Есть ли другая функция печати, которую я должен использовать, чтобы печатать поверх всего, вместо того, чтобы стирать все? Я знаю, что могу использовать MoSync MaDrawText() вместо этого, но мне было интересно, есть ли функция печати, которая также будет работать.

0

Решение

Это ожидаемое поведение, printf() будет отображать текст на отдельном экране. Альтернатива maDrawText(int left, int top, const char* str); что позволит вам нарисовать текст в области рисования.

Ваш код может выглядеть так:

//Draw the Rectangle
maSetColor(0x0055ff);
maFillRect(10,10,100,100);

//Draw the text
maSetColor(0xffffff);
maDrawText(10,10,"Press zero or back to exit");

//Update the screen to reflect changes
maUpdateScreen();

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]