3

我想反转一行中的文本,另一行正常显示,并且在verifone vx520中没有反转。我使用 inverse_toggle() 函数,但这个函数反转整个页面而不是一行。我怎样才能反转一条线而另一条线显示正常?

这是我的代码:

int display = open(DEV_CONSOLE, 0);
inverse_toggle();
write(display,"first line to inverse\n",22); //i want to inverse just this line
write(display,"second line shown normally\n",27);//i want to show this line normally
4

1 回答 1

1

我从来没有玩过inverse_toggleor setinverse,但我注意到你没有将它切换回来。尝试这个:

int display = open(DEV_CONSOLE, 0);
inverse_toggle();
write(display,"first line to inverse\n",22);
inverse_toggle(); // new line
write(display,"second line shown normally\n",27);

如需更多控制,请使用setinverse. 另外,请查看display_at. 我认为您会发现它比write

int display = open(DEV_CONSOLE, 0);
setinverse(1); // explicitly turn inverse on
display_at(1, // x
           1, // y
           "first line to inverse", // no /n needed since we are specifying x and y
           NO_CLEAR); //defined in ACLCONIO.H. Other options are CLR_LINE and CLR_EOL
setinverse(0); // explicitly turn inverse off
display_at(1, 2, display,"second line shown normally", NO_CLEAR);

如果这不起作用,您总是可以使用字体工具来制作新字体(尽管这样会更有效)。

于 2015-05-27T17:02:29.653 回答