各位高手,搞定这个!!!!!??? 在文本框的 EN-UPDATE 判断就可以了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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的数字 争却的方法是拦截PreTranslateMessage, 查WM_KEYDOWN的键值. 楼上大哥:PreTranslateMessage具体如何做?? 烦躁,从bcb转来做vc,发现bcb里面只要定义一下属性的地方在vc里竟然被正儿八经的提出来问,就像这篇……咳,有没有把vc和bcb合起来用的东东……画外音:这家伙恐怕快疯了,闪先! 做一个自己的文本框ON_WM_CHARclass 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);} 有现成的掩码输入控件qiyao(qi) : 能不能帮我UP一下?http://www.csdn.net/expert/topic/498/498470.shtm qiyao(qi): 你的问题不是已经解答了吗, 怎么还问? 好吧,我再详细点说一遍: 你可以从CEdit继承一个类,比如叫做 MyCEdit,这个新类就具有了很多的消息,比如WM_KEYDOWN和 EN_CHANGE. 在KEYDOWN事件的响应函数中,你可以过滤掉你不想要的键值.在CHANGE事件的响应函数中,你可以替换文本框中出现的你不想要的键值. 然后你在Dialog上放一个Edit控件, 然后使用ClassWizard为这个控件生成一个变量,选择变量为Control,在选择变量类型时,在下拉列表中选择MyCEdit( 如果缺省将是CEdit).这个时候,消息就被交给你新建的类处理了. 至于如何插入新类我就不用多说了吧,就是菜单Insert中的New Class... the Uper , you are something cool! 100分求教http://www.csdn.net/Expert/topic/500/500276.shtm 看来MFC真实让人很痛苦压!不知VC.NET有没有改进。 vc6 Tab Ctrl属性页面右上角步进按钮怎么重绘? 学MFC规则DLL出问题了。。。 请问大家,系统是如何自动完成radio button的互斥事件的? 单文档主框架的解析函数问题 SDK程序的消息处理``请教`` 帮忙看看一个传递WndProc函数指针的问题? 高分请教!!在线等待 关于清屏问题 C++类引用的问题!(100分) 请问如何把一个Dialog加到SDI的View中,使Dialog和View邦定 各位:请教如何得到当前鼠标的资源ID,用GetCursor()得到的是一个句柄。 关于activex控件参数问题
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的数字
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);
}
http://www.csdn.net/expert/topic/498/498470.shtm
你的问题不是已经解答了吗, 怎么还问? 好吧,我再详细点说一遍:
你可以从CEdit继承一个类,比如叫做 MyCEdit,这个新类就具有了很多的消息,比如WM_KEYDOWN和 EN_CHANGE. 在KEYDOWN事件的响应函数中,你可以过滤掉你不想要的键值.
在CHANGE事件的响应函数中,你可以替换文本框中出现的你不想要的键值.
然后你在Dialog上放一个Edit控件, 然后使用ClassWizard为这个控件生成一个变量,
选择变量为Control,在选择变量类型时,在下拉列表中选择MyCEdit( 如果缺省将是CEdit).这个时候,消息就被交给你新建的类处理了. 至于如何插入新类我就不用多说了吧,就是菜单Insert中的New Class...
http://www.csdn.net/Expert/topic/500/500276.shtm