VC语言

本类阅读TOP10

·VC++下使用ADO编写数据库程序
·VC++ 学习笔记(二)
·Windows消息大全
·每个开发人员现在应该下载的十种必备工具
·在2000和xp下,隐藏进程,VC6.0测试通过!!!
·用Visual C++打造IE浏览器(1)
·Netmsg 局域网聊天程序
·教你用VC6做QQ对对碰外挂程序
·VC++学习笔记(四)
·VC++中经常使用的函数!~~

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
CSpinButtonCtrl控件处理小数的问题

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

问题来源:

上下控件一般是和一个输入数字的Edit控件一起使用的,而且一般数字应该是整数,最近在项目开发中要求Edit中能输入小数。这样原来的上下控件就要做一些改动了。比如当前的Edit框中是4.3按了上下控件后应该为4和5。

改动思路:

写一个继承CSpinButtonCtrl的类CSpinButtonCtrl,响应OnLButtonDown,在该函数中由与上下控件相关编辑控件中的数字来重新设置上下控件的基点。

OnLButtonDown函数:

void CMySpinButtonCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
 int nRow;
 int nUpper;
 CMySpinButtonCtrl::GetRange(nRow, nUpper);
  /*
   *判断编辑框中的输入是否合法
  */
  CString strNum;
  CMySpinButtonCtrl::GetBuddy()->GetWindowText(strNum);
  if ( g_IsNumber(strNum) ==FALSE )
  {
   MessageBox("请输入合法的数字");
   return;
  }
  else
  {
   CRect Rect;
   CMySpinButtonCtrl::GetWindowRect (&Rect);
   if( strNum.Find('.') > 0 )
   {
    int nDotpos = strNum.Find('.');
    int nLength = strNum.GetLength();
    strNum = strNum.Left(nDotpos+1);
    int pos  = atoi(strNum);
    if(point.y <((Rect.bottom-Rect.top)/2))
    {
     CMySpinButtonCtrl::SetPos(pos);
    }
    else
    {
     CMySpinButtonCtrl::SetPos(pos + 1);   
    }
   }
   else
   {
    int pos = atoi(strNum);
    CMySpinButtonCtrl::SetPos(pos);
   }
  }

 CSpinButtonCtrl::OnLButtonDown(nFlags, point);

}

//其中g_IsNumber是一个判断某个字符串是否是数字(可以是小数)的函数




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有