欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      MFC中字符串操作方法的總結

      時間:2019-05-13 16:14:11下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《MFC中字符串操作方法的總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《MFC中字符串操作方法的總結》。

      第一篇:MFC中字符串操作方法的總結

      在VC的編程中,常常遇到需要對字符串進行格式化處理,所謂的格式化,我自己的定義是如下的過程,例如說,需要輸出一個字符串“This is charpter %d”,其中的%d,用變量int chp來代替,生成這種字符串的操作我成為“格式化”,下面介紹一下有關的操作:

      1.CString類,這個類在MFC中如果啟用了UNICODE碼后,就是CStringT類,注意在查找

      MSDN時,需要查找的是CStringT這個類,該類與很多操作都是兼容的,特別是使用UNICODE碼的情況下,該類提供了一個格式化字符串的函數:

      Format函數,該函數可以直接將格式化的字符串用%d, %s之類的格式符來描述,舉個例子來說:

      CStringmystr;

      inttimes = 0;

      mystr.Format(_T(“This is my %d try!”), times);

      值得說明的是CString提供了字符串操作的一系列函數,包括比較大小,大小寫轉換,字符串的連接,字符串的相等和尋找等,需要時,直接參考MSDN就可以了

      2.sprintf: 雖然說CString類有著許多的優(yōu)點,但是并不能包辦所有的操作,最直接的一個

      問題就是CString并不能直接賦值給一個字符串變量,即CString類并沒有提供一種調用,可以將其內部的字符串賦值給一個字符串變量,如果要進行這種操作,則必須手動編程完成,但是某些函數中又必須要用到字符串數組類型,這個時候又面臨一個問題,即字符串數組該怎樣來格式化,這個時候需要調用sprintf函數,該函數是個全局函數,其調用的格式如下:

      sprintf(buffer, “ String:%sn”, s);

      該函數中,buffer是需要被格式化的字符串數組,而“”中的內容就是格式化內容,最后的則是各種數字或這字符串等,該函數很方便使用

      目前用到的格式化字符串操作,用以上兩種思路都可以基本上解決,在使用注意UNICODE就行了,如果用到了UNICODE碼,注意用_T()來進行轉換

      第二篇:MFC實踐總結

      mfc編程實驗總結報告 知識總結+個人心得 2011年暑期mfc編程實驗報告 mfc編程實驗個人總結報告

      一、mfc類、函數等知識小結:

      1、settimer(1, m_intlevel, null);在mfc程序中settimer被封裝在cwnd類中,調用就不用指定窗口句柄了于是settimer函數的原型變?yōu)椋? uint settimer(uint nidevent,uint nelapse,void(callback export *lpfntimer)(hwnd,uint ,yint ,dword))當使用settimer函數的時候,就會生成一個計時器。函數中nidevent指的是計時器的標識,也就是名字。nelapse指的是時間間隔,也就是每隔多長時間觸發(fā)一次事件。第三個參數是一個回調函數,在這個函數里,放入你想要做的事情的代碼,你可以將它設定為null,也就是使用系統(tǒng)默認的回調函數,系統(tǒng)默認認的是ontime函數。這個函數怎么生成的呢?你需要在需要計時器的類的生成ontime函數:在classwizard里,選擇需要計時器的類,添加wm_time消息映射,就自動生成ontime函數了。然后在函數里添加代碼,讓代碼實現(xiàn)功能。每隔一段時間就會自動執(zhí)行一次。例: settimer(1,1000,null);1:計時器的名稱;

      1000:時間間隔,單位是毫秒; null:使用ontime函數。

      當不需要計時器的時候調用killtimer(nidevent);例如:killtimer(1);killtimer(1);

      2、typedef struct{};(1)struct{ int x;int y;}test1;好,定義了 結構 test1,test1.x 和 test1.y 可以在語句里用了。(2)struct test {int x;int y;}test1;定義了結構 test1,test1.x 和 test1.y 可以在語句里用了。

      與(1)比,省寫 了 test(3)typedef struct test {int x;int y;}text1,text2;此處時說了這種結構體(類型)別名 叫 text1 或叫 text2,而不是定義了結構體變量.真正在語句里用,還要寫: text1 test1;//定義結構體變量

      然后好用 test1.x test1.y 或寫 text2 test1;//定義結構體變量

      然后好用 test1.x test1.y

      3、invalidate();//讓客戶區(qū)無效,即時重新繪制客戶區(qū) void invalidate(bool berase = true);該函數的作用是使整個窗口客戶區(qū)無效。窗口的客戶區(qū)無效意味著需要重繪,例如,如果一個被其它窗口遮住的窗口變成了前臺窗口,那么原來被遮住的部分就是無效的,需要重繪。這時windows會在應用程序的消息隊列中放置wm_paint消息。mfc為窗口類提供了wm_paint的消息處理函數onpaint,onpaint負責重繪窗口。視圖類有一些例外,在視圖類的onpaint函數中調用了ondraw函數,實際的重繪工作由ondraw來完成。參數berase為true時,重繪區(qū)域內的背景將被擦除,否則,背景將保持不變。

      4、cdc::rectangle(左上x,左上y,右下x,右下y);使用該函數畫一個矩形,可以用當前的畫筆畫矩形輪廓,用當前畫刷進行填充。

      函數原型:bool rectangle(hdc hdc, int nleftrect, int ntoprect, int nrightrect, int nbottomrect);

      hdc:設備環(huán)境句柄。

      nleftrect:指定矩形左上角的邏輯x坐標。ntoprect:指定矩形左上角的邏輯y坐標。nrightrect:指定矩形右下角的邏輯x坐標。nbottomrect:指定矩形右下角的邏輯y坐標。

      5、cbrush:: cbrush//畫刷類 eg:cbrush brushstick(rgb(127, 127, 127));四種構造函數: cbrush();cbrush(colorref crcolor);cbrush(int nindex, colorref crcolor);cbrush(cbitmap* pbitmap);參數說明: crcolor指定畫刷的前景色(rgb方式)。如果畫刷是陰影線型的,則指定陰影線的顏色。nindex指定畫刷陰影線采用的風格,取值如下: hs_bdiagonal45度的向下影線(從左到右)hs_cross水平和垂直方向以網格線作出陰影 hs_diagcross 45度的網格線陰影 hs_fdiagonal 45度的向上陰影線(從左到右)

      hs_horizontal 水平的陰影線 hs_vertical 垂直的陰影線 pbitmap指向cbitmap對象的指針,該對象指定了畫刷要繪制的位

      圖。

      構造函數說明:

      6、messagebox(game over!);messagebox(null,text,title,button);參數title:string類型,指定消息對話框的標題。text:指定消息對話框中顯示的消息,該參數可以是數值數據類型、字符串或boolean值。icon:icon枚舉類型,可選項,指定要在該對話框左側顯示的圖標。button:button枚舉類型,可選項,指定顯示在該對話框底部的按鈕。default:數值型,可選項,指定作為缺省按鈕的按鈕編號,按鈕編號自左向右依次計數,缺省值為1,如果該參數指定的編號超過了顯示的按鈕個數,那么messagebox()函數將使用缺省值返回值integer。函數執(zhí)行成功時返回用戶選擇的按鈕編號(例如1、2、3等),發(fā)生錯誤時返回-1。如果任何參數的值為null,messagebox()函數返回null。

      函數原型:

      messagebox.show(text,title,messageboxbuttons,messageboxicon ,messageboxdefaultbuttons)參數說明:

      (1)text:必選項,消息框的正文。

      (2)title:可選項,消息框的標題。(3)messageboxbuttons:可選項,消息框的按鈕設置,默認只顯示【確定】按鈕。ok――確定 okcancel――確定和取消 abortretryignore――終止、重試和忽略 yesnocancel――是、否和取消 yesno――是和否 retrycancel――重試和取消

      (4)messageboxicon:對話框中顯示的圖標樣式,默認不顯示任何圖標。

      question――問號 information、asterisk――i號 error、stop、hand――錯誤號 warning、exclamation――!號 none――不顯示任何圖標

      (5)messageboxdefaultbuttons:可選項,對話框中默認選中的按鈕設置。

      defaultbutton1――第1個button是默認按鈕 defaultbutton2――第2個button是默認按鈕 defaultbutton3――第3個button是默認按鈕

      7、memcpy(拷貝目的地,拷貝對象,拷貝長度);包含在頭文件#include

      函數原型:

      extern void *memcpy(void *destin, void *source, unsigned n);功能:

      由source指向地址為起始地址的連續(xù)n個字節(jié)的數據復制到以destin指向地址為起始地址的空間內。eg: int a=5,b=9;memcpy(a,b,sizeof(a));//將b按位拷給a;說明:

      1.source和destin所指內存區(qū)域不能重疊,函數返回指向destin的指針。2.與strcpy相比,memcpy并不是遇到