
void CSCommTestDlg::OnTimer(UINT nIDEvent){// TOD Add your message handler code here and/or call defaultOnButtonManualsend();CDialog::OnTimer(nIDEvent);}
再在在主對話框中加入一個復選接鈕,ID為IDC_CHECK_AUTOSEND Caption: 自動發送(周期1秒),再利用ClassWizard為其添加BN_CLICK消息處理函數void CSCommTestDlg::OnCheckAutosend():
void CSCommTestDlg::OnCheckAutosend(){// TOD Add your control notification handler code herem_bAutoSend=!m_bAutoSend;if(m_bAutoSend){SetTimer(1,1000,NULL);//時間為1000毫秒}else{KillTimer(1); //取消定時}}
其中:m_bAutoSend為BOOL型變量,在CLASSVIEW中為CSCommTestDlg類加入,并在構造函數中初始化:
m_bAutoSen=FALSE;現在可以運行程序測試了。
11.什么是VARIANT數據類型?如何使用VARIANT數據類型?
不知如何使用VARIANT數據類型, 有不少朋友對VARIANT這個新的數據類型大感頭疼。SetOutput()函數中 需要的VARIANT參數還可以使用COleVariant類的構造函數簡單生成,現在GetInput()函數的返回值也成了VARIANT類型,那么如何從返回的值中提取有用的內容。 VARIANT及由之而派生出的COleVariant類主要用于在OLE自動化中傳遞數據。實際上VARIANT也只不過是一個新定義的結構罷了,它的主要成員包括一個聯合體及一個變量。該聯合體由各種類型的數據成員構成, 而該變量則用來指明聯合體中目前起作用的數據類型。我們所關心的接收到的數據就存儲在該聯合體的某個數據成員中。 該聯合體中包含的數據類型很多,從一些簡單的變量到非常復雜的數組和指針。由于通過串口接收到的內容常常是一個字節串,我們將使用其中的某個數組或指針來訪問接收到的數據。這里推薦給大家的是指向一個SAFEARRAY(COleSafeArray)類型變量。新的數據類型SAFEARRAY正如其名字一樣,是一個“安全數組”,它能根據系統環境自動調整其16位或32 位的定義,并且不會被OLE改變(某些類型如BSTR在16位或32位應用程序間傳遞時會被OLE翻譯從而破壞其中的二進制數據)。大家無須了解SAFEARRAY的具體定義,只要知道它是另外一個結構,其中包含一個 (void *)類型的指針pvData,其指向的內存就是存放有用數據的地方。 簡而言之,從GetInput()函數返回的VARIANT類型變量中,找出parray 指針,再從該指針指向的SAFEARRAY變量中找出pvData指針,就可以向訪問數組一樣取得所接收到的數據了。具體應用請參見void CSCommTestDlg::OnComm()函數。
大概我現在也說不清這個問題,我自己從第一次接觸這個東西,到現在還是給別人講不清。
網站首頁 |網站簡介 | 關于我們 | 廣告業務 | 投稿信箱
Copyright © 2000-2020 www.yushuoyun.cn All Rights Reserved.
中國網絡消費網 版權所有 未經書面授權 不得復制或建立鏡像
聯系郵箱:920 891 263@qq.com
www.亚洲男人天堂_欧美最顶级的aⅴ艳星_国产精品免费网站_欧美日韩在线一区_欧美床上激情在线观看_日韩av色在线_国产精品亚洲综合天堂夜夜_欧美做爰性生交视频_国产成人高潮免费观看精品_久久天天躁夜夜躁狠狠躁2022_国产美女久久精品香蕉69_亚洲专区在线视频_国产精品夜间视频香蕉_国产成人综合一区二区三区_国产精品69av_岛国av午夜精品