2015-05-27 81 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