1,定义全局变量的方法:
(1)应该在第一个对话框源代码文件中定义全局变量int index;然后在第一个对话框头文件中声明extern int index;然后让第二个对话框源代码文件来调用。
(2)第一种方式是最粗糙实现公有变量的方法,一般不太建议使用,因为无法控制和跟踪。另一个间接方式,在第一个对话框源代码文件中定义全局变量static int index;在声明两个方法extern int ask_index() { return index };和extern void set_index( int input_index ) { index = input_index; }; 然后将此两个方法的声明写在第一个对话框的头文件中,可以让第二个对话框的源代码文件包含使用。
2,利用客户数据传递:
你在第二个对话框中建立函数extern int sx ( int response,int user_data ),里面的内容一般是(1)UF_initialize; (2) UF_STYLER_create_dialog; (3) UF_terminate;
在UF_STYLER_create_dialog的第四个参数位置是客户数据位置,通常不使用的情况下,我们放的是NULL。在这里你可以将第一个对话框单选列表的数据通过形参user_data传进来,然后将它的指针放在第四个参数的位置&user_data。
这样在第二个对话框的各个回调函数中,第二个参数都是void *client_data。你可以做一个强制转换就可以得到你需要的数据,如:
int index=(int) *client_data;