0

我有一些看起来像这样的简单代码:

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(),但我想知道是否有一个也可以使用的打印功能。

4

1 回答 1

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

于 2013-10-31T18:11:43.443 回答