У меня есть простой код, который выглядит следующим образом:
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()
вместо этого, но мне было интересно, есть ли функция печати, которая также будет работать.
Это ожидаемое поведение, 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 () не будет рисовать поверх вашего текущего чертежа.
Других решений пока нет …