C 基本功補習 定時器使用及檔案路徑提取

2021-06-14 19:05:41 字數 1748 閱讀 8792

settimer(1, 1000, null); //啟動定時器1, 定時1000毫秒, 使用預設的處理函式ontimer()

killtimer(1);        //關閉定時器1

處理函式的實現

[cpp]view plain

copy

print?

void

cmfcview::ontimer(

uint_ptr

nidevent)  

// cmfcview 這個可以根據專案需要變更的,它只是表明乙個歸屬

case

2:  

default

:    

}  cformview::ontimer(nidevent);  // cformview 這個類不能動

}  

使用起來非常方便和簡單,但想要它運作起來,還有兩個重要點必需打通:

a,在相應的類的標頭檔案public:下宣告    afx_msg void ontimer(uint_ptr nidevent);

b,訊息對映表中應當新增 on_wm_timer()  , 格式上獨佔一行

推薦 使用 cfiledialog 類重寫 自帶的「開啟」方法,更能精確控制對話方塊,也方便後續提取檔案路徑和檔名

[cpp]view plain

copy

print?

cfiledialog dlg(  

true,  null ,null,  

ofn_filemustexist | ofn_pathmustexist | ofn_hidereadonly, // ofn_nochangedir 是指不變更當前exe工作預設目錄

, // 可供選擇專案約束,注意組合方式

null);    

//檔案型別說明和副檔名間用 | 分隔,同種型別檔案的副檔名間可以用 ; 分割,每種檔案型別間用 | 分隔,末尾用 || 指明。                                    

);    

// 開啟檔案對話方塊的標題名

if( dlg.domodal() != idok )                 

// 判斷是否獲得

return

;  

cstring cfiledialog::getpathname( ) 得到完整的檔名,包括目錄名和副檔名如:c:\test\test1.txt 

cstring cfiledialog::getfilename( ) 得到完整的檔名,包括副檔名如:test1.txt 

cstring cfiledialog::getextname( ) 得到完整的副檔名,如:txt 

cstring cfiledialog::getfiletitle ( ) 得到完整的檔名,不包括目錄名和副檔名如:test1 

getfilepath()函式,是獲取開啟檔案的路徑的函式 

getcurrentdirectory 相對路徑,隨時會變

如果是工作路徑, 用getworkingdirectory

如果是當前可執行程式, 用getmodulefilename(null, p, size) 應用的絕對路徑,基本不變

hmodule module = getmodulehandle(0); 

char buf[max_path]; 

getmodulefilename(module, buf, sizeof buf);

STM32學習 定時器(通用定時器)

如圖所示,輸出理解時注意兩種訊號ocxref和ocx,ocx是直接連到埠的訊號,ocxref是輸出控制的輸出訊號。一般在參考手冊中大多數講ocxref。ocx與ocxref可由ccxp控制是否反向,由ccxe控制訊號輸出。比較輸出功能 輸出乙個波形 指示一段給定時間已到。它的原理是通過計數器的值cn...

WIN32學習 定時器訊息

1 定時器訊息 可以在程式中設定定時器,當到達時間間隔時,定時器會向視窗傳送乙個wm timer訊息,定時器的精度為毫秒,但是精準度很低。2 訊息的引數 wparam 定時器id lparam 定時器處理函式的指標 3 定時器的使用步驟 a 建立定時器 uint settimer hwnd hwnd...

基本定時器

一 程式設計要點 1 初始化時基結構體 2 配置中斷優先順序 3 寫中斷服務函式 4 寫主函式 二 定時時間計算 定時時間 中斷週期 中斷次數 以1s為例 tim prescaler timxpsc 暫存器 tim period arr 自動重裝載暫存器 timxclk 系統時鐘 ck clk 1 ...