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 に答える