如何以ncurses的形式移动字段



我用ncurses和特殊形式用C编写了一个程序。我需要在填写表单时移动表单中的某个特定字段。我尝试了move_field,但它不起作用。以下是我的写作方式:

if (typact==ADSD && rowc>rowg )
{ 
move_field(field[ietg],rowg=rowc,colg); 
refresh();
}

我确信move_field已执行(我使用xCode调试程序(。我认为刷新是不够的。我还尝试将move_field放置在unpost_formpost_form之间,如下所示:

if (typact==ADSD && rowc>rowg /* && !field_status(field[ietg]) */ )
{ unpost_form(my_form);
move_field(field[ietg],rowg=rowc,colg); 
post_form(my_form); refresh();
}

但它又不起作用了。表格被删除并重新张贴,没有我写的文本,字段总是在同一个地方。

如何使用move_field

手册页面显示

函数move_field将给定字段(必须断开连接的(移动到屏幕上的指定位置。

您可以通过使用form_fields检索字段的当前列表(以及使用field_count其长度(、从该列表中删除字段并使用1set_form_fields更新列表来断开字段的连接。

使用move_field时,还必须(暂时(使用unpost_form取消粘贴表单。否则,move_field将返回E_POSTED(表单已过帐(。移动字段后,使用post_form让表单驱动程序使用更新的表单。

ncurses源中的test/move_field.c文件提供了这些调用的示例。

最新更新