獲取EditCtrl中數字的方法

2021-07-16 17:59:48 字數 1720 閱讀 1891

方法一:

int num1,num2,result;

char ch1[10],ch2[10],ch3[10];

getdlgitem(idc_edit1)->getwindowtext(ch1,10);

getdlgitem(idc_edit2)->getwindowtext(ch2,10);

num1=atoi(ch1);

num2=atoi(ch2);

result=num1+num2;

itoa(result,ch3,10);//將計算結果轉換為字元,十進位制

getdlgitem(idc_edit3)->setwindowtext(ch3);

方法二:

使用uint getdlgitemint(int nid,bool *lptrans=null,bool bsigned=true)函式,該函式功能為獲取控制項中裡面字串並轉換成int型別返回。

引數1:控制項id,

引數2:接收錯誤資訊

可能出現的錯誤資訊有:

1.id無效,並且超過指定大小,比如說:id為12345677,這個就不行.

2.輸入不能解析為乙個int型別的,比如輸入:"bvbvbvbv","3.5666",

當然後面可以解析為乙個浮點型,在這裡取得的值為3,但是還是會有錯誤資訊

如果不指定第二個引數,就不會獲得任何錯誤資訊,這個引數很有用的,對輸入的判斷是否可以解析為int型別或者是否有效,很有用的,我們經常有這個引數來判斷使用者的輸入是否合法

引數3:預設為true,主要是針對"-123",像這樣的字元,它可以把前面的"-"解析為負號,那麼就是標準的int型別了,如果設定為false,那麼它不可以有

負數,因為在這裡的"-"號,被認為是不合法的

舉例:bool flag;

uint ui=getdlgitemint(idc_edit1,&flag,true);

cstring cs;

cs.format("%d,%d",ui,flag);

messagebox(cs);

方法三:

使用uint getdlgitemtext(hwnd hdlg, int niddlgitem, lptstr lpstring, int nmaxcount)函式 ,該函式功能為獲取對話方塊中指定控制項的標題或文字,獲取完之後然後利用_ttoi/_tcstoul/_ttof()/_tcstod()轉換一下即可。 

引數1:hdlg 視窗的控制代碼。

引數2:niddlgitem   指定控制項的識別符號(id)。 

引數3:lpstring   指向用於接收獲取結果的緩衝區的指標。   

引數4:nmaxcount   指定允許拷貝到上述緩衝中的最大字元數(按 tchar 字元型別),如果字串的長度(包含結束空字元)大於指定的最大字元數,則會被截斷。

返回值:

如果函式呼叫成功,返回值為拷貝到緩衝區中的 tchar 字元個數(不包括結束空字元)。  

如果函式呼叫失敗,返回值為 0 。要獲取更多錯誤資訊,請呼叫 getlasterror 函式。

說明  如果字串的長度大於緩衝區的長度,則會被截斷,並以空字元結束。getdlgitemtext 函式向控制項傳送一條 wm_gettext 訊息。在 ansi 版本中,長度指的是位元組數,在 unicode 版本中,長度指的是字元的個數。

系統要求如下:

標頭檔案:在winuser.h中定義,需包含windows.h檔案   

庫檔案:user32.lib

VC中EditCtrl的自動換行

在vc中使用edit控制項顯示內容時,常常需要對顯示的內容進行換行,一般採用關聯乙個cstring變數的方式,然後在需要換行的地方將cstring的關聯變數加上 r n 注意必須是換行回車 r n 只加 n 是不行的。而且還有乙個需要注意的是需要將控制項屬性multiline設為true,否則也不會...

qt 獲取QString 中的數字

比如qstring str 123你好456你好 我們要從這個str中提取出 123456 qstring str 123你好456你好 qstring tmp for int j 0 j str.length j 這樣tmp中存放的就是 123456 聽說用正規表示式qregexp也可實現。d 非...

C foreach 中獲取索引index的方法

在c 開發中往往使用foreach 迴圈語句 來代替for迴圈語句。foreach 比 for 更加簡潔高效。foreach foreach var item in arr for for int i 0 i 顯然 for語句直接就存在索引變數,通過索引獲取值。但在實際操作中,使用foreach 有...