Printf擦除屏幕(使用MoSync库)

时间:2013-10-29 19:12:58

标签: c++ 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()代替,但我想知道是否还有一个打印功能也可以使用。

1 个答案:

答案 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()不会在你当前的绘图之上绘制。