藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月6日 10:18


curses裡的form和menu

有誰知道FORM和MENU裡的用法的?雖然SCO有文檔,可太簡單,對於如何使用沒有說明,所以想要一些細節上的東西,有急用,誰可幫我一下?謝謝了。

curses裡的form和menu

menu使用
這裡只是簡單寫寫
如果你真想看那麼可以到google上查找更多
1 初始化
2 使用new_iterm創建菜單項
3 使用new_menu創建菜單
4  使用menu_post輸出菜單
5 刷新屏幕
6 進入循環獲得輸入事件
7 使用menu_unpost撤消
使用free_menu free_item


如果什麼都不展還是去買本書回來看看
這些並不是講講就可以瞭解的

curses裡的form和menu

無雙大哥,哪有賣關於curses(FORM和MENU用法)的書,推薦一本好不好。

curses裡的form和menu

到書店看看

看哪本講得比較全

我這的資料也不是很全
也不知道哪本好

另外ncurses安裝devel時會安裝自己的例子啊
你可以看它的例子
在/usr/share/doc/ncurses...目錄下

curses裡的form和menu

哪裡有ncurses下載啊

curses裡的form和menu

google查找
或是linux安裝光盤上找

curses裡的form和menu

curses裡的form和menu

下了,編譯安裝在sco unix下可以用,學習先!

curses裡的form和menu

sunlan !!
   多謝先。

curses裡的form和menu

li2002:怎麼在SCO UNIX 下安裝呢?

curses裡的form和menu

先將ncurses的包在sco unix下tar開,然後執行.configure,再make,編譯出來的lib庫(在lib目錄下)就可以使用了。做以前最好先看下readme。
我一般是這樣用的:
   1)將include、lib兩個目錄打包出來,可以拷貝到別的機器上作為開發環境。
   2)在makefile中要將以上的include和lib目錄設好,使程序編譯和鏈接的時候使用ncurses而非sco系統的include和lib。

curses裡的form和menu

1:make後,程序編譯到一定時候出錯了,是不是要先在SCO中安裝GCC?
2:再請教一個問題:能將一個menu1設置為menu0中item0的子菜單嗎,NCURSES提供的函數中有設置嗎?你是怎麼做的?

curses裡的form和menu

1)sco下自帶的c編譯器可以用來編譯,沒問題的。如果編譯出錯,可以把出錯信息貼出來大家看看。
2)子菜單一般是通過再次調用菜單函數實現的。curses沒有提供多級菜單的定義。以下是我的程序頭文件裡對菜單的一些定義:
/*********************************************
        MENU defines
*********************************************/

#define ITEM_NAME_MAX        20
#define ITEM_DESC_MAX        40

#define ITEM_LEVEL_0        0        /* no sub menu */
#define ITEM_LEVEL_1        1        /* have sub menu */

typedef struct
{
        unsigned int id;
        char name[ITEM_NAME_MAX+1];
        char discrep[ITEM_DESC_MAX+1];
        unsigned int level;
        void (*action)();        /*action when enter pressed*/
} SDKITEM;

typedef struct SDKMENU
{
        WINDOW *win;                /*menu is in this window*/
        int begin_y,begin_x;        /*menu's top_left conner position*/
        int item_num;                /*menu's item number*/
        int item_curr;                /*current item index of the menu*/
        ITEM **items;
        MENU *border;
        SDKITEM *iteminfo;
        struct SDKMENU *parent;        /*submenu's parent,
                                if it's mainmenu parent==NULL
                                */
} SDKMENU;

SDKITEM定義了單個菜單項的屬性,其中action為菜單動作。SDKMENU為SDKITEM所構成的菜單。

curses裡的form和menu

To sunlan:
1、關於菜單的關聯問題,看來只有自己定義了;
2、幫忙我看一下,這是我剪切下來的最後一部分MAKE的輸出信息:
cd progs && make - DESTDIR="" all
        cd ../objects;  cc -I../progs -I.  -I. -I../include I/ncurses/include/ncurses  -DHAVE_CO
NFIG_H  -c ../progs/tic.c
        cd ../objects;  cc -I../progs -I.  -I. -I../include -I/ncurses/include/ncurses  -DHAVE_CO
NFIG_H  -c ../progs/dump_entry.c
"../progs/dump_entry.c", line 150: error: undefined symbol: bool_from_termcap
"../progs/dump_entry.c", line 150: error: cannot dereference non-pointer type
"../progs/dump_entry.c", line 155: error: undefined symbol: num_from_termcap
"../progs/dump_entry.c", line 155: error: cannot dereference non-pointer type
"../progs/dump_entry.c", line 160: error: undefined symbol: str_from_termcap
"../progs/dump_entry.c", line 160: error: cannot dereference non-pointer type
"../progs/dump_entry.c", line 232: error: undefined symbol: bool_terminfo_sort
"../progs/dump_entry.c", line 232: warning: improper pointer/integer combination: op "="
"../progs/dump_entry.c", line 233: error: undefined symbol: num_terminfo_sort
"../progs/dump_entry.c", line 233: warning: improper pointer/integer combination: op "="
"../progs/dump_entry.c", line 234: error: undefined symbol: str_terminfo_sort
"../progs/dump_entry.c", line 234: warning: improper pointer/integer combination: op "="
"../progs/dump_entry.c", line 241: error: undefined symbol: bool_variable_sort
"../progs/dump_entry.c", line 241: warning: improper pointer/integer combination: op "="
"../progs/dump_entry.c", line 242: error: undefined symbol: num_variable_sort
"../progs/dump_entry.c", line 242: warning: improper pointer/integer combination: op "="
"../progs/dump_entry.c", line 243: error: undefined symbol: str_variable_sort
"../progs/dump_entry.c", line 243: warning: improper pointer/integer combination: op "="
"../progs/dump_entry.c", line 250: error: undefined symbol: bool_termcap_sort
"../progs/dump_entry.c", line 250: warning: improper pointer/integer combination: op "="
"../progs/dump_entry.c", line 251: error: undefined symbol: num_termcap_sort
"../progs/dump_entry.c", line 251: warning: improper pointer/integer combination: op "="
"../progs/dump_entry.c", line 252: error: undefined symbol: str_termcap_sort
"../progs/dump_entry.c", line 252: warning: improper pointer/integer combination: op "="
"../progs/dump_entry.c", line 356: error: undefined symbol: bool_from_termcap
"../progs/dump_entry.c", line 356: error: cannot dereference non-pointer type
"../progs/dump_entry.c", line 358: error: undefined symbol: num_from_termcap
"../progs/dump_entry.c", line 358: error: cannot dereference non-pointer type
"../progs/dump_entry.c", line 360: error: undefined symbol: str_from_termcap
"../progs/dump_entry.c", line 360: error: cannot dereference non-pointer type
*** Error code 1 (bu21)
*** Error code 1 (bu21)     
這些未定義的變量確實不在dump_entry.c包含的幾個頭文件中,這是怎麼回事,幫忙看看,謝謝了。



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com