我有一些简单的代码,看起来像这样:
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() 不会在您当前的绘图之上绘制。
关于c++ - Printf 删除屏幕(使用 MoSync 库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667166/