我有一些看起来像这样的简单代码:
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 :(得分:1)
这是预期的行为,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()不会在你当前的绘图之上绘制。