void CSCommTestDlg::OnTimer(UINT nIDEvent){// TOD Add your message handler code here and/or call defaultOnButtonManualsend();CDialog::OnTimer(nIDEvent);}
再在在主對(duì)話框中加入一個(gè)復(fù)選接鈕,ID為IDC_CHECK_AUTOSEND Caption: 自動(dòng)發(fā)送(周期1秒),再利用ClassWizard為其添加BN_CLICK消息處理函數(shù)void CSCommTestDlg::OnCheckAutosend():
void CSCommTestDlg::OnCheckAutosend(){// TOD Add your control notification handler code herem_bAutoSend=!m_bAutoSend;if(m_bAutoSend){SetTimer(1,1000,NULL);//時(shí)間為1000毫秒}else{KillTimer(1); //取消定時(shí)}}
其中:m_bAutoSend為BOOL型變量,在CLASSVIEW中為CSCommTestDlg類(lèi)加入,并在構(gòu)造函數(shù)中初始化:
m_bAutoSen=FALSE;現(xiàn)在可以運(yùn)行程序測(cè)試了。
11.什么是VARIANT數(shù)據(jù)類(lèi)型?如何使用VARIANT數(shù)據(jù)類(lèi)型?
不知如何使用VARIANT數(shù)據(jù)類(lèi)型, 有不少朋友對(duì)VARIANT這個(gè)新的數(shù)據(jù)類(lèi)型大感頭疼。SetOutput()函數(shù)中 需要的VARIANT參數(shù)還可以使用COleVariant類(lèi)的構(gòu)造函數(shù)簡(jiǎn)單生成,現(xiàn)在GetInput()函數(shù)的返回值也成了VARIANT類(lèi)型,那么如何從返回的值中提取有用的內(nèi)容。 VARIANT及由之而派生出的COleVariant類(lèi)主要用于在OLE自動(dòng)化中傳遞數(shù)據(jù)。實(shí)際上VARIANT也只不過(guò)是一個(gè)新定義的結(jié)構(gòu)罷了,它的主要成員包括一個(gè)聯(lián)合體及一個(gè)變量。該聯(lián)合體由各種類(lèi)型的數(shù)據(jù)成員構(gòu)成, 而該變量則用來(lái)指明聯(lián)合體中目前起作用的數(shù)據(jù)類(lèi)型。我們所關(guān)心的接收到的數(shù)據(jù)就存儲(chǔ)在該聯(lián)合體的某個(gè)數(shù)據(jù)成員中。 該聯(lián)合體中包含的數(shù)據(jù)類(lèi)型很多,從一些簡(jiǎn)單的變量到非常復(fù)雜的數(shù)組和指針。由于通過(guò)串口接收到的內(nèi)容常常是一個(gè)字節(jié)串,我們將使用其中的某個(gè)數(shù)組或指針來(lái)訪問(wèn)接收到的數(shù)據(jù)。這里推薦給大家的是指向一個(gè)SAFEARRAY(COleSafeArray)類(lèi)型變量。新的數(shù)據(jù)類(lèi)型SAFEARRAY正如其名字一樣,是一個(gè)“安全數(shù)組”,它能根據(jù)系統(tǒng)環(huán)境自動(dòng)調(diào)整其16位或32 位的定義,并且不會(huì)被OLE改變(某些類(lèi)型如BSTR在16位或32位應(yīng)用程序間傳遞時(shí)會(huì)被OLE翻譯從而破壞其中的二進(jìn)制數(shù)據(jù))。大家無(wú)須了解SAFEARRAY的具體定義,只要知道它是另外一個(gè)結(jié)構(gòu),其中包含一個(gè) (void *)類(lèi)型的指針pvData,其指向的內(nèi)存就是存放有用數(shù)據(jù)的地方。 簡(jiǎn)而言之,從GetInput()函數(shù)返回的VARIANT類(lèi)型變量中,找出parray 指針,再?gòu)脑撝羔樦赶虻腟AFEARRAY變量中找出pvData指針,就可以向訪問(wèn)數(shù)組一樣取得所接收到的數(shù)據(jù)了。具體應(yīng)用請(qǐng)參見(jiàn)void CSCommTestDlg::OnComm()函數(shù)。
大概我現(xiàn)在也說(shuō)不清這個(gè)問(wèn)題,我自己從第一次接觸這個(gè)東西,到現(xiàn)在還是給別人講不清。
網(wǎng)站首頁(yè) |網(wǎng)站簡(jiǎn)介 | 關(guān)于我們 | 廣告業(yè)務(wù) | 投稿信箱
Copyright © 2000-2020 www.hngelin.com All Rights Reserved.
中國(guó)網(wǎng)絡(luò)消費(fèi)網(wǎng) 版權(quán)所有 未經(jīng)書(shū)面授權(quán) 不得復(fù)制或建立鏡像
聯(lián)系郵箱:920 891 263@qq.com
辉南县| 辽宁省| 怀安县| 佛教| 威宁| 湘阴县| 呼伦贝尔市| 友谊县| 安西县| 如东县| 沂南县| 慈利县| 惠来县| 江川县| 曲靖市| 田阳县| 龙里县| 桃园市| 饶阳县| 普兰县| 台北县| 定结县| 筠连县| 信阳市| 建瓯市| 万盛区| 佛山市| 清徐县| 祁东县| 西城区| 上饶市| 陆川县| 高平市| 顺昌县| 衡南县| 龙门县| 三台县| 岚皋县| 广安市| 改则县| 江陵县|