璁哄潧鍏稿瀷闂鐨勪竴涓В鍐虫柟娉
鍙戝竷: 2008-6-26 14:54 | 浣滆: admin | 鏌ョ湅: 55娆
涓嬭浇鏈枃鎵闄勬簮浠g爜
浠嬬粛
鍦ㄥ緢澶歏C鎶鏈鍧涗腑缁忓父鐪嬪埌涓浜涗汉鎻愬嚭鏉ヨ澶氱殑闂,鍏朵腑鏈夊緢澶氱殑闂鍏锋湁寰堝鐨勯拡瀵规у拰鏅墖鎬,杩欓噷灏变袱涓棶棰樿繘琛岀畝瑕佺殑鍥炵瓟,涔熻寰堝楂樻墜鏈夋洿绠鍗曠殑瑙g瓟鏂规硶,涓嶈繃杩欓噷鐨勬柟娉曞笇鏈涜兘缁欏悇浣嶆垨鑰呭垵瀛﹁呮湁甯姪.
姝f枃
闂涓.濡備綍鏄疎D99v鏀寔灏忔暟鐨勮緭鍏.
涓鑸殑ED99v鎺т欢鏀寔寰堝鏍煎紡鐨勮緭鍏,濡傛灉瑕佹敮鎸佹暟鎹殑杈撳叆鐨勮瘽,浣犲彲浠ヤ慨鏀笶D99v鎺т欢灞炴,閫変腑NUMBER灞炴у氨鍙互浜,浣嗘槸杩欐牱涓嶆敮鎸.鍙风殑杈撳叆,涔熷氨鏄笉鏀寔灏忔暟鐨勮緭鍏ヤ簡.
杩欓噷鐨勮В鍐虫柟娉曟槸娲剧敓涓涓被CED99v,鐒跺悗鏄犲皠娑堟伅EN_CHANGE,鍥犱负濡傛灉浣犵殑鎺т欢浣跨敤杩欎釜娲剧敓绫荤殑璇,鍦ㄤ綘杩涜浣犵殑ED99v鎺т欢杩涜杈撳叆瀛楃鏀瑰彉鐨勬椂鍊欓兘浼氳Е鍙戣繖涓簨浠,涓嶇敤涓轰綘鐨勬帶浠舵瘡涓Е鍙慐N_CHANGE浜嬩欢浜.鐒跺悗鍒ゆ柇鏂拌緭鍏ョ殑瀛楃,濡傛灉杩欎釜瀛楃绗﹀悎鏁板瓧瑙勫垯鎴栬.鍙疯鍒,鍐嶈绠楀凡缁忓嚭鐜扮殑.鍙锋鏁,褰撶鍚堣繖绉嶆潯浠舵椂鍏佽杈撳叆鎿嶄綔,鍚﹀垯鍒犻櫎鍒氳緭鍏ョ殑瀛楃,杩涜閲嶆柊璁剧疆缂栬緫妗嗗瓧绗︿覆鐨勬搷浣.
鍙兘娑夊強鍒扮殑闂,1:濡備綍鍒ゆ柇涓涓瓧绗︿覆鏄暟瀛楄繕鏄埆鐨勭被鍨.2:濡備綍鏌ユ壘涓涓瓧绗︿覆涓煇涓鍙峰嚭鐜扮殑娆℃暟.3:濡備綍璁剧疆ED99v鍏夋爣鐨勪綅缃.
1 闂鐨勮В鍐虫柟娉曞彲浠ュ埄鐢ㄤ笅闈㈢殑鏂规硶瑙e喅.
CString strtemp=szTemp.SpanIncluding("0123456789");
if(!strtemp.IsEmpty())
//杩欎釜瀛楃涓蹭负鏁板瓧
else
//闈炴暟瀛
2 闂鎴戠敤寰幆閫掑綊鐨勬柟娉曞疄鐜,棣栧厛鏌ユ壘鏈鍏堝嚭鐜扮殑绗﹀彿浣嶇疆,鐒跺悗鍒╃敤瀛楃涓插垎鍓叉妧鏈彇RIGHT閮ㄥ垎鍐嶈繘 琛屽惊鐜皟鐢ㄥ氨鍙互浜,鐩稿叧浠g爜鍙互瑙佷笅:
int CNumEditCtrl::GetStringNum(CString szVal)//鑾峰緱瀛楃涓蹭腑闂.鍙风殑涓暟
{
int nNum=0;
while(1)
{
int nCount=szVal.Find('.');
if(nCount==-1)
break;
szVal=szVal.Right(szVal.GetLength()-nCount-1);
nNum++;
}
return nNum;
}
3 闂鍙互閲囩敤鑾峰緱ED99v鎺т欢鍙ユ焺鍙戦丒M_SETSEL娑堟伅鐨勬柟娉曞疄鐜.
鎵浠ュ熀鏈唬鐮佸彲浠ュ疄鐜拌涓嬩簡:
void CNumEditCtrl::OnChange()
{
// TODO: If this is a RICHED99v control, the control will not
// send this notification unless you override the CEdit::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
CString m_estr,szTemp;
GetWindowText(m_estr);
int nLen=m_estr.GetLength();
if(!m_estr.IsEmpty())
{
szTemp=m_estr.Right(1);
BOOL bNum=TRUE;
CString strtemp=szTemp.SpanIncluding("0123456789");
if(!strtemp.IsEmpty())
bNum=TRUE;
else
bNum=FALSE;
nPoint=GetStringNum(m_estr);
if(strcmp(szTemp,".")==0 || bNum)
{
if(nPoint>1)
{
nPoint--;
::AfxMessageBox(".鍙峰嚭鐜版鏁拌秴杩囦袱娆!");
m_estr=m_estr.Left(m_estr.GetLength()-1);
SetWindowText(m_estr);
nLen--;
SendMessage(EM_SETSEL,nLen,nLen);
return;
}
}
else
{
::AfxMessageBox("杈撳叆鏍煎紡閿欒");
m_estr=m_estr.Left(m_estr.GetLength()-1);
SetWindowText(m_estr);
nLen--;
SendMessage(EM_SETSEL,nLen,nLen);
return;
}
}
// TODO: Add your control notification handler code here
}
闂浜.濡備綍浣跨敤PICTURE鎺т欢鏄剧ずED99v鎺т欢鍐呭
PICTURE鎺т欢涓嶈兘杩涜SETWINDOWTEXT鎿嶄綔,鎵浠ヤ笉鑳界洿鎺ヤ娇鐢ㄦ帶浠朵笉鑳芥樉绀哄瓧绗.浣嗘槸濡傛灉娲剧敓CSTATIC,鐒跺悗澶勭悊WM_PAINT娑堟伅杩涜鎺т欢鐨勯噸缁樻搷浣滃氨鍙互瀹炵幇浜.浠g爜鍏跺疄閮芥槸鐙犵畝鍗曠殑.涓嬮潰鐨勬柟娉曞彲浠ュ弬鑰.
void CShowStrPicWnd::OnPaint()
{
CPaintDC dc(this); // d
m_Brush.DeleteObject();
m_Brush.CreateSolidBrush(RGB(255,128,64));
CDC* pDC = GetDC();
pDC->SetBkMode(OPAQUE);
pDC->SetBkColor(RGB(255,128,64));
pDC->SelectObject(&m_Brush);
CRect rc;
GetClientRect(&rc);
ScreenToClient(&rc);
pDC->Rectangle(0, 0, rc.Width(), rc.Height());
pDC->SetTextColor(RGB(255,0,0));
pDC->TextOut(2, 2, strText.GetBuffer(strText.GetLength()));
// Do not call CStatic::OnPaint() for painting messages
}
鐒跺悗瑙﹀彂鎺т欢EN_CHANGE娑堟伅,杩欐牱灏辫兘澶熷皢淇℃伅浼犻掑埌PIC浜,鍐嶈皟鐢↖NVALIDATERECT杩涜鐣岄潰鐨勯噸缁樺伐浣.
绋嬪簭杩愯鐣岄潰瑙佷笅:




发表于 2009-1-5 19:48
| 











