我新建了个TimeEdit类,它是继承Edit类的,在KeyUp消息下已经实现了我所要的时间输入超做,但只要一用到鼠标就不行了同样的选择函数 TimeEdit::SetSel(6,8,FALSE);//设置被选中的两个字符,在鼠标按下的时候不起作用,这样00:00:00就变成了00:100:00请问该怎么解决呢?
我代码如下:
if((nChar>='1'&&nChar<='9')||(nChar>='a'&&nChar<='i'))
{
RUN=TRUE;
if(pos==0)
{
if(pass==FALSE)
{
Editctrl::SetSel(0,2,FALSE);//设置被选中的两个字符
pass=TRUE;
}
else
{
pass=FALSE;
pos=3;
} }
else if(pos==3)
{
if(pass==FALSE)
{
Editctrl::SetSel(3,5,FALSE);//设置被选中的两个字符
pass=TRUE;
}
else
{
pass=FALSE;
pos=6;
}
}
else if(pos==6)
{
if(pass==FALSE)
{
Editctrl::SetSel(6,8,FALSE);//设置被选中的两个字符
pass=TRUE;
}
else
{
pass=FALSE;
pos=0;
}
}
}
else if(nChar==39||nChar=='%')//小键盘的左右键值
{
if(nChar==39)
{
switch(pos)
{
case 0:
Editctrl::SetSel(3,5,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=3;
break;
case 3:
Editctrl::SetSel(6,8,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=6;
break;
case 6:
Editctrl::SetSel(0,2,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=0;
break; }
}
else
{
switch(pos)
{
case 0:
Editctrl::SetSel(6,8,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=6;
break;
case 3:
Editctrl::SetSel(0,2,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=0;
break;
case 6:
Editctrl::SetSel(3,5,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=3;
break;
}
}
}
我代码如下:
if((nChar>='1'&&nChar<='9')||(nChar>='a'&&nChar<='i'))
{
RUN=TRUE;
if(pos==0)
{
if(pass==FALSE)
{
Editctrl::SetSel(0,2,FALSE);//设置被选中的两个字符
pass=TRUE;
}
else
{
pass=FALSE;
pos=3;
} }
else if(pos==3)
{
if(pass==FALSE)
{
Editctrl::SetSel(3,5,FALSE);//设置被选中的两个字符
pass=TRUE;
}
else
{
pass=FALSE;
pos=6;
}
}
else if(pos==6)
{
if(pass==FALSE)
{
Editctrl::SetSel(6,8,FALSE);//设置被选中的两个字符
pass=TRUE;
}
else
{
pass=FALSE;
pos=0;
}
}
}
else if(nChar==39||nChar=='%')//小键盘的左右键值
{
if(nChar==39)
{
switch(pos)
{
case 0:
Editctrl::SetSel(3,5,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=3;
break;
case 3:
Editctrl::SetSel(6,8,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=6;
break;
case 6:
Editctrl::SetSel(0,2,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=0;
break; }
}
else
{
switch(pos)
{
case 0:
Editctrl::SetSel(6,8,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=6;
break;
case 3:
Editctrl::SetSel(0,2,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=0;
break;
case 6:
Editctrl::SetSel(3,5,FALSE);//设置被选中的两个字符
pass=TRUE;
pos=3;
break;
}
}
}
解决方案 »
- mfc对话框怎样做贴图界面?
- 天勒,高手快来救命啊。QQ2009,如果在伪造的EDIT里显示“黑圆点”在大的加分
- 关于CoCreateInstance的问题
- 请教关于SuspendThread和ResumeThread
- 请高手帮个忙,有没有这样一个例子?
- 对话框中是否有OnDraw() ????
- 谁能提供win2000中的服务程序的源代码?如:pop3服务或其他的用socket编写的服务。绝对送分,不够还可以加,急急急!!!
- 请帮我分析这个问题,删除数据库中的数据时出现了差错
- 关于函数的一个小问题,很容易得分!
- 哪位高手肯告之:如何寻找VC++帮助的中文版?不胜感激!!!
- VC++中MFC建立的应用程序关闭对话框时出现“0x21016d9f指令引用的0xccccccc8内存,该内存不能为read”!
- 基于对话框程序的快捷键问题
里面有好几种属性设置,有种和你的需求一样。
可以考虑VB等RAD工具开发,不要折腾MFC老大人拉。