先检查你的源码,有的地方写成bigifont,有的地方写成了bigfont。根据你的代码sub_bigfont函数根本就不会运行。 LIST及POPUP_LIST的VALUE值应当是列表的索引值,在LISP中返回的是字符串类型的数字。所以,你如果在它们的ACTION里对它们本身调用了SET_TILE函数,那它们将会根据你提供的VALUE重新调整索引值,如果你提供的VALUE第一个字符不是数字,那它的索引值将会是0,否则根据你提供的VALUE里的数字进行调整。 蓝色部分之所以能够选中你所选的项目是因(setq oldstr (get_tile "unifont"))它返回了你所选项的索引值,而在 (set_tile "unifont" (strcat oldstr newstr))的 (strcat oldstr newstr)返回的是"0a" "1b" "2c"一类的值,它们的第一个字符均为数字,且对应相应的项,所以你在set_tile时它能正确的返回你所选的项。 其实当你选择一个LIST的项时没有必要对它自身进行SET_TILE。 如果把代码的bigifont全部改正过来,你会发现你在选“S5”时popup_list显示的将会是1,而当你选2时它反而会显示"S5" |