MFC中一些控制項的使用和Opencv的一些變數轉換

2021-06-04 01:17:12 字數 1488 閱讀 4808

這幾天需要做乙個小的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 如果沒去執行這段程式,可能有的人...