Win10系列 VC 定時器

2021-09-25 18:30:43 字數 3355 閱讀 2253

計時器機制俗稱"心跳",表示以特定的頻率持續觸發特定事件和執行特定程式的機制。在開發windows應用商店應用的過程中,可以使用定義在windows::ui::xaml命名空間中的dispatchertimer類來建立計時器。dispatchertimer類包含了如下的成員:

簡單介紹了dispatchertimer類之後,接下來模擬實現乙個簡易的計時器。在visual staudio 2012中新建乙個visual c++的windows應用商店的空白應用程式專案,並命名為dispatchertimerdemo,接著在mainpage.xaml檔案的grid元素中新增如下的**,用於布局前台介面。

開始" grid.column="0">

停止" grid.column="1">

在上面的**中,新增了乙個textblock控制項和兩個按鈕。將這個textblock控制項命名為clocktext,用來顯示計時器的計時。兩個按鈕分別為"開始"按鈕和"停止"按鈕,其中"開始"按鈕用來啟動計時器,"停止"按鈕用來停止計時器。

布局了前台介面以後,接下來新增計時器的後台實現**。開啟mainpage.xaml.h標頭檔案,新增如下的**:

private:

//宣告

dispatchertimer

型別變數

timer

windows::ui::xaml::dispatchertimer^ timer;

//宣告

timespan

型別變數

timespan

windows::foundation::timespan timespan;

//宣告

int32

型別變數

int32 highnum;

//宣告

int32

型別變數

int32 lownum;

在上面的**中,使用private關鍵字宣告了四個私有的成員變數,分別為timer、timespan、highnum和lownum,其中timer是乙個dispatchertimer型別的變數,用來表示計時器,timespan為timespan型別的變數,用來表示時間。highnum和lownum都為int32型別的變數,分別代表計時器的十位數和個位數。

宣告了上述的變數之後,接下來開啟mainpage.xaml.cpp原始檔,並在建構函式中新增如下的**:

mainpage::mainpage()

在上面的**中,初始化乙個dispatchertimer類的物件timer,並為timer物件的tick事件新增事件處理函式dispatchertimertick,後面將介紹dispatchertimertick函式的具體實現**。然後把timespan變數的duration屬性賦值為10000000,並將timespan變數賦值給timer物件的interval屬性,使timer物件的tick事件每1秒觸發一次。最後將highnum變數和lownum變數分別賦值為0,用於表示計時器的起始時間。

在實現dispatchertimertick函式之前,首先需要在mainpage.xaml.h標頭檔案中進行宣告,**如下所示:

public:

//更新計時器計時

void dispatchertimertick(object^ sender, object^ e);

在上述**中,使用public關鍵字宣告乙個公有的dispatchertimertick函式,此函式用來更新計時器的計時,並將更新後的計時顯示到前台介面中。

宣告了dispatchertimertick函式以後,接下來在mainpage.xaml.cpp原始檔中新增dispatchertimertick函式的實現**,具體**如下所示:

//更新計時器計時

void dispatchertimerdemo::mainpage::dispatchertimertick(object^ sender, object^ e)

else

else

} //將計時顯示到

textblock

控制項中clocktext->text="

開始計時:

"+highnum+lownum;

} 在上面的**中,當lownum變數的值小於9時,lownum變數自增1。而當lownum變數的值大於9時,將lownum變數賦值為0,並設定highnum變數的值。同樣,當highnum變數的值小於9時,highnum變數自增1。而當highnum變數大於9時,將highnum變數賦值為0。最後將highnum變數和lownum變數賦值給名為"clocktext"的textblock控制項的text屬性,用於將計時顯示到前台介面中。

新增了dispatchertimertick函式的實現**後,接下來為"開始"按鈕新增單擊事件處理函式startclick。在mainpage.xaml.h標頭檔案中新增如下的**,用來宣告startclick函式。

public:

//啟動計時器

void startclick(platform::object^ sender, windows::ui::xaml::routedeventargs^ e);

宣告了startclick函式之後,接下來在mainpage.xaml.cpp原始檔中新增startclick函式的實現**,在此函式中呼叫timer物件的start函式來啟動計時器。具體**如下所示:

//啟動計時器

void dispatchertimerdemo::mainpage::startclick(platform::object^ sender, windows::ui::xaml::routedeventargs^ e)

接著給"停止"按鈕新增單擊事件處理函式stopclick,在mainpage.xaml.h標頭檔案中新增如下的**,用來宣告stopclick函式。

public:

//停止計時器

void stopclick(platform::object^ sender, windows::ui::xaml::routedeventargs^ e);

宣告了stopclick函式之後,接下來在mainpage.xaml.cpp原始檔中新增stopclick函式的實現**,在此函式中呼叫timer物件的stop函式來停止計時器。具體**如下所示:

//停止計時器

void dispatchertimerdemo::mainpage::stopclick(platform::object^ sender, windows::ui::xaml::routedeventargs^ e)

執行dispatchertimerdemo專案後,單擊"開始"按鈕啟動計時器,顯示如圖20-1所示的計時器介面。

圖20-1 計時器

Win10系列 VC 檔案選取

在c cx的windows storage pickers命名空間中定義了乙個fileopenpicker類,使用此類可以新建乙個檔案開啟選取器,並可以通過這個類裡面包含的屬性和函式選取乙個或多個檔案。下面列舉了fileopenpicker類包含的屬性 接下來通過乙個示例來說明如何使用fileope...

VC 定時器應用

目前做的專案其中有兩個功能 選單 是 1 載入 exi檔案 已實現 2 載入 profile 檔案 要實現 其中 profile 檔案中有描述 exi檔案的資訊,試圖在載入 profile 時,也要載入 exi檔案。其中載入 exi檔案的內容已經實現了,它彈出 載入 exi檔案對話方塊 在對話方塊中...

SpringBoot系列 定時器

定時器功能在專案裡面往往會用到,比如定時傳送郵件 定時釋放資料庫資源 這裡記錄一下springboot對定時器的支援的簡單例項 cron表示式是乙個字串,字串以5或6個空格隔開,分為6或7個域,每乙個域代表乙個含義,cron有如下兩種語法格式 seconds minutes hours dayofm...