2015-05-27 15 views
3

我想在一行中反转文本,另一行在verifone vx520中正常显示并且没有反转。我使用了inverse_toggle()函数,但是这个函数反转了整个页面而不是一条线。我如何反演只是一条线,另一条线显示为正常?如何在verifone vx520中反转文本

这里是我的代码:

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 

回答

1

我从来没有与inverse_togglesetinverse出场,但我注意到,你没有切换回来了。试试这个:

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); 

更人性化的选择。如果不工作,你总是可以使用的字体工具,使一个新的字体,而不是(虽然这将是更多的工作)。

+0

当使用inverse_toggle()时,整个页面将会反转。 和display_at我没有找到任何像gotox(x,y)这样的函数,这不能正常工作和反转整个页面。 –

+0

然后你可能需要创建或找到一个逆字体。 – David

+0

我只是检查看看是否使用'window'命令会有所帮助,但它似乎并不(唉)。我想你会被卡在使用字体创建工具。好消息是,你可以加载一个现有的字体,然后使用“反向”命令​​。坏消息是,你必须为每个角色都做到这一点 - 我不知道如何一次性“反转”整个字体。至于“display_at”,这是aclconio.h'文件的一部分。 – David