完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
EDIT_SetDecMode(WM_GetDialogItem(hWin,GUI_ID_EDIT0),200,0,999999999,0,0);
EDIT_SetMaxLen(WM_GetDialogItem(hWin,GUI_ID_EDIT0),10); EDIT_SetValue(WM_GetDialogItem(hWin,GUI_ID_EDIT0),value); 最大长度是10,显示的时候就除了value的值外其他值是0,例如value=12345;显示的就是0000012345,怎样可以让这高位为0的不显示出来呢? |
|
相关推荐
6个回答
|
|
方法见下面的两个函数, 我就不多说了, 相信你能看懂的 /******************************************************************************************** 函 数 名: 有符号整数转换为字符串函数,高位为0,则不显示 调 用: CX_printh(u8 *str, s32 Dat,u8 len) 参 数: *str 字符串转换后保存的首地址 Dat:数值(+-0~4294967295); len:长度(即要显示的位数,最大只转换8位有效值) 返 回 值: 转换结果保存 字符串指针所指向的地址中 ********************************************************************************************/ void CX_printh(u8 *str, s32 Dat,u8 len) { u8 i,tem,at,af; at = 0; //清标志位 af = 0; //清标志位 if(len>10)len=10; if(Dat < 0){Dat =-Dat; *str = '-'; str++; af = 0xff;}//如果是负数,先转为正数,并装入符号位 for(i=0;i tem=(Dat/CX_pow(10,len-i-1))%10;//取得当前位数字 if(tem == 0){if(at != 0){*str = 0x30; str ++;}} else{ at = 0xff; //置标位位 *str = tem + 0x30; str ++; } } if(at == 0 && af == 0xff) { str --; *str = '0'; str ++; } else{ if(at == 0 && af ==0){*str = '0'; str ++;} } *str = ' |