在文本框的 EN-UPDATE 判断就可以了

解决方案 »

  1.   

    CString s;
    CButton *pFrame=(CButton *) GetDlgItem(IDC_PLAYFRAME);
    pFrame->GetWindowText(s); int i=atoi(s);
    if (i<1)
    {

    pFrame->SetWindowText("1");
    }
    if (i>1000)
    {
    pFrame->SetWindowText("1000");

    }这样,你只能输入在1~1000的数字
      

  2.   

    争却的方法是拦截PreTranslateMessage, 查WM_KEYDOWN的键值.
      

  3.   

    楼上大哥:PreTranslateMessage具体如何做??
      

  4.   

    烦躁,从bcb转来做vc,发现bcb里面只要定义一下属性的地方在vc里竟然被正儿八经的提出来问,就像这篇……咳,有没有把vc和bcb合起来用的东东……画外音:这家伙恐怕快疯了,闪先!
      

  5.   

    做一个自己的文本框
    ON_WM_CHAR
    class cmyedit:public CEdit
    {
    afx_msg void OnChar(UINT,UINT,UINT);
    DECLARE_MESSAGE_MAP()
    .
    .
    .
    }
    BEGIN_MESSAGE_MAP(cmyedit,CEdit)
      ON_WM_CHAR()
    END_MESSAGE_MAP()
    void cmyedit::onchar(UINT nChar,UINT nRepCnt,UINT nFlage)
    {
    if(((nChar>='0')&&(nChar<='9'))||(nChar=='.'))
    CEdit::OnChar(nChar,nRepCnt,nFlags);
    }
      

  6.   

    有现成的掩码输入控件qiyao(qi) : 能不能帮我UP一下?
    http://www.csdn.net/expert/topic/498/498470.shtm
      

  7.   

    qiyao(qi):
      你的问题不是已经解答了吗, 怎么还问?  好吧,我再详细点说一遍:
      
      你可以从CEdit继承一个类,比如叫做 MyCEdit,这个新类就具有了很多的消息,比如WM_KEYDOWN和 EN_CHANGE. 在KEYDOWN事件的响应函数中,你可以过滤掉你不想要的键值.
    在CHANGE事件的响应函数中,你可以替换文本框中出现的你不想要的键值.
      然后你在Dialog上放一个Edit控件, 然后使用ClassWizard为这个控件生成一个变量,
    选择变量为Control,在选择变量类型时,在下拉列表中选择MyCEdit( 如果缺省将是CEdit).这个时候,消息就被交给你新建的类处理了. 至于如何插入新类我就不用多说了吧,就是菜单Insert中的New Class...
      

  8.   

    the Uper , you are something cool!
      

  9.   

    100分求教
    http://www.csdn.net/Expert/topic/500/500276.shtm
      

  10.   

    看来MFC真实让人很痛苦压!不知VC.NET有没有改进。