GetDlgItemInt()返回类型是 UINT型,但是为何可以返回负数呢?
-------------------------------------
这个函数的原型是:UINT GetDlgItemInt(int nID, BOOL* lpTrans = NULL,
BOOL bSigned = TRUE) const;按理说,只能返回正整数和0呀.但是,实际上,可以返回负数呀,为什么呢?
假如一个文本框 IDC_EDIT1,我将文本框的值取出来,显示一下.
我在 IDC_EDIT1中输入负值,用这个函数可以正常显示出来,这是为什么呢?
这个函数的返回值可是 UINT 型呀?
int i;
char str[10];
i=GetDlgItemInt(IDC_EDIT1);
itoa(i,str,10);
MessageBox(str);
-------------------------------------
这个函数的原型是:UINT GetDlgItemInt(int nID, BOOL* lpTrans = NULL,
BOOL bSigned = TRUE) const;按理说,只能返回正整数和0呀.但是,实际上,可以返回负数呀,为什么呢?
假如一个文本框 IDC_EDIT1,我将文本框的值取出来,显示一下.
我在 IDC_EDIT1中输入负值,用这个函数可以正常显示出来,这是为什么呢?
这个函数的返回值可是 UINT 型呀?
int i;
char str[10];
i=GetDlgItemInt(IDC_EDIT1);
itoa(i,str,10);
MessageBox(str);
你把GetDlgItemInt声明成INT或UINT不影响其返回值的内容
而且最终显示出来是多少与GetDlgItemInt返回类型,int i的类型都无关
由itoa决定
当然可以显示负数了
同一块内存,你把他转换为UINT 如果是0xFFFFFFFF
nan那么你再把他转换为int 他就是-1
同一块内存,你把他转换为UINT 如果是0xFFFFFFFF
nan那么你再把他转换为int 他就是-1很好