這幾天需要做乙個小的demo,用到了mfc,其實本來想用.net,聽說更方便,但誰讓我對mfc熟悉呢,懶也沒辦法。
下面是昨天遇到的一些問題:
opencv中iplimage與mat的轉換
iplimage *image;
mat frame;
frame = image;
image = (iplimage)frame;
cstring與char的轉換
cstring strfile = dlg.getpathname(); // 全路徑
demofile = strfile;
tempfile = demofile.getbuffer(demofile.getlength());
只有遇到乙個問題
txt檔案中儲存了一連串的數字,用空格隔開,我需要一行一行的讀取後,在乙個乙個的讀取
最後採用c++檔案讀寫的方式完成
char seps=" ";
char *token;
char bb[10000];
datafile.getline(bb,1000);
token = strtok(bb,seps);
number=atoi(token);
token = strtok(null,seps);
while(token!=null)
還有乙個是mfc中大家經常用到的ontimer()函式
本來我也一直認為這是個多執行緒問題
但我發現其實ontimer函式可以不用傳遞引數就可以使用主程式的變數
因此我認為其實這個函式並不是乙個多執行緒
緊緊是過一段時間執行一次而已
但是如何停止ontimer的執行呢?
網上說可以用
cdialog::ontimer(null);
我試過了,並不可行
最後我加了判斷讓ontimer函式空執行解決了問題
還有乙個,很多人可能不太喜歡編寫mfc中開啟檔案對話方塊的程式
給大家乙個模板
char *tempfile;
lpctstr szfilter = "chart files (*.*)|*.*|worksheet files (*.*)|*.*|data files (*.*;*.*)|*.*; *.*|all files (*.*)|*.*||";
if(dlg.domodal() == idok)
最後的tempfile就是所開啟檔案的路徑名
datafile是乙個ifstream變數
最後說一下cstring轉char*中可能大家會遇到乙個w_char無法轉換為char的問題
這個事編譯器設定的問題
w_char和char的位元組數不相同導致
修改編譯器的屬性,改為支援多位元組就可以了(預設為union字元)
接這些吧,也給自己總結下。
MFC中一些型別的Format格式
很多時候一些格式需要以日誌的形式列印出來,就需要轉成cstring.那麼就需要用到format 1.dword dword a2 276321234 cstring str2 str2.format t u a2 2.char 如果工程時unicode編碼,有三種方法 char pchar liux...
VC中一些控制項的小技巧
1.讓list control有check box 用setextendedstyle方法可以設定,看 clistctrl m listctrl dword dwstyle m listctrl.getstyle dwstyle lvs ex checkboxes m listctrl.setext...
Enumeration 使用中一些經驗
vector v new vector for int i 0 i 10 i v.add new integer i enumeration e v.elements while e.hasmoreelements system.out.println v.size 如果沒去執行這段程式,可能有的人...