VFP中實(shí)現(xiàn)電話撥號(hào)

字號(hào):

用VFP 管理名片簿、通信錄時(shí),經(jīng)常要用到電話撥號(hào)程序。如直接使用Windows 98自帶的撥號(hào)程序,VFP 程序的完整性和界面一致性都將受到影響。
    設(shè)計(jì)思想
    要實(shí)現(xiàn)撥號(hào),只需讓程序往串口寫入at 命令。利用VFP 對(duì)Microsoft CommControl 控件的支持可以方便地控制電話。假設(shè)有一數(shù)據(jù)表Communication .dbf ,內(nèi)容如下:姓名電話號(hào)碼其他張三1234567ETC……將上述表引入表單Form1的數(shù)據(jù)環(huán)境之后,在Form1上加入下列控件,如下所示:
    控件名稱控件類型控件屬性值
    Text1Text ControlSource =communication .姓名
    Text2Text ControlSource =communication .電話號(hào)碼
    Command1Command Button Caption =“撥號(hào)”
    Command2Command Button Caption =“掛斷”
    Command3Command Button Caption =“下條記錄”
    在表單中加入OLE 容器控件,當(dāng)提示菜單出現(xiàn)時(shí),選擇Insert Control ,在Control Type(控件類型)欄內(nèi)找到并雙擊Microsoft CommControl ,這時(shí)表單上會(huì)出現(xiàn)一個(gè)帶電話標(biāo)志的圖標(biāo),設(shè)定該控件的名稱為Telephone ,這就是在VFP 中實(shí)現(xiàn)電話撥號(hào)的核心部件。選擇Telephone 控件,單擊鼠標(biāo)右鍵,選擇MSCommProperties 菜單項(xiàng),可以更加靈活地控制該控件。
    設(shè)定事件代碼
    在Form1的Init 事件中加入下列代碼:
    go top
    *設(shè)定通訊端口號(hào),可根據(jù)你的實(shí)際情況設(shè)定
    *筆者的Modem 是接在Com3上的thisform.telephone .CommPort =3
    *設(shè)定端口的通訊速率(波特率)、通訊字長(zhǎng)以及是否進(jìn)行校驗(yàn)
    thisform.telephone .Settings =″9600,n ,8,1″
    在Command1的Click 事件中加入下述代碼:
    this .enabled =.not .this .enabled
    thisform.command2.enabled =.t .
    *打開通信端口,準(zhǔn)備工作
    thisform.telephone .portopen =.t .
    *ATDT表示執(zhí)行AT命令中的DT指令,D 表
    示首先掛斷電話
    *T表示使用音頻撥號(hào),如果你的電話使用的
    是脈沖方式撥號(hào)
    *請(qǐng)將T改為P,CHR(13)表示發(fā)送命令完畢
    thisform.telephone .output =″ATDT″+電話號(hào)碼+
    chr(13)
    wait wind″正在撥號(hào),請(qǐng)稍候″nowa
    在Command2的Click 事件中寫入下列代碼:
    thisform.command1.enabled =.t .
    thisform.command2.enabled =.f .
    *關(guān)閉通信端口
    thisform.telephone .portopen =.f .
    在Command3的Click 事件中寫入下列代碼:
    skip if eof()
    go top
    endi
    thisform.refresh
    經(jīng)過(guò)上面幾個(gè)步驟,大功告成了。
    更多請(qǐng)關(guān)注考試大計(jì)算機(jī)等級(jí)站