我改变了编辑框中的数据(编辑框中的只能是浮点数),如果在范围内的话,就要以一定格式(保留小数点后三位)显示在编辑框中。好的,问题就来了:如果只是为编辑框定义的一个float型的成员变量m_edit1,首先我用format函数把它改成固定格式的数据,得到的类型是CString,没办法通过Setwindowtext()回显;如果增加一个CEdit类型的变量调用该函数,程序虽然能编译通过,但是每次运行的时候都会出现内存的位置不可读的错误(这个错误真的太烦了!!!!!!)
void CTest12Dlg::OnOK() //
{
// TODO: Add extra validation here
GetNextDlgTabItem(GetFocus())->SetFocus();}void CTest12Dlg::OnKillfocusEdit1()
{
// TODO: Add your control notification handler code here
CString str;
if(m_edit1<=100&&m_edit1>=-100)
{
str.Format("%.3f", m_edit1);
//我要回显m_edit1这个数据该怎么添加代码呢?
}
else
{
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
ASSERT(pEdit->GetSafeHwnd());
pEdit->SetWindowText(_T("57.500")); // Default Value
pEdit->SetSel(0, -1);
pEdit->SetFocus();
}
}
求高手指点!!cstringMFC编辑框
void CTest12Dlg::OnOK() //
{
// TODO: Add extra validation here
GetNextDlgTabItem(GetFocus())->SetFocus();}void CTest12Dlg::OnKillfocusEdit1()
{
// TODO: Add your control notification handler code here
CString str;
if(m_edit1<=100&&m_edit1>=-100)
{
str.Format("%.3f", m_edit1);
//我要回显m_edit1这个数据该怎么添加代码呢?
}
else
{
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
ASSERT(pEdit->GetSafeHwnd());
pEdit->SetWindowText(_T("57.500")); // Default Value
pEdit->SetSel(0, -1);
pEdit->SetFocus();
}
}
求高手指点!!cstringMFC编辑框
解决方案 »
- win32中如何加载一张硬盘上的图片(bmp格式)
- 文档/视图中再创建文档/视图,获取框架指针的问题!
- 非模态对话框在PostNcDestroy()中delete this报错
- 设备无关位图DIB的问题,为什么biSizeImage!=biWidth*biHeight*3
- 求助:Kodak 控件如何增加消息处理 OnLButtonDblClk
- 关于多进程同时使用硬件设备(Mifare读卡器)的解决方案
- 菜鸟及问题
- 请问逻辑坐标和设备坐标
- 各位!谁知道怎么改QQ的托盘图标呢?是改注册表还是.....?(高分喔!)
- 关于串口中断的问题
- 关于线程的问题
- win7下怎么隐藏listctr控件的l滚动条
看看有没有 #.### 格式化
CString str;
double dVal = 10.23232;
str.Format("%.2f",dVal);
难道我用编辑框的时候还得在程序里面给编辑框赋值么?我想要实现的功能就是这样输入20,转移焦点后显示的是20.000或者输入20.474784848显示的是20.475.
扩展 CEdit 为 MyEdit,重载OnChar或 OnKeyDown ,只让输入数字型字符或小数点,
将转移焦点(LostFocus)搞个响应函数,在函数中显示三位小数的字符串
你说的我试了,的确问题是,我在一个软件上试过输入20,它的就能做到回显出20.000.不过奇怪的是,每次转移焦点后,它的数据好像摆正了一样,好像编辑框前两个字符自动打了空格。
CEdit* pEdit1=(CEdit*)GetDlgItem(IDC_EDIT1);
pEdit1->SetWindowText(" "+str);
这样貌似可以诶
CEdit* pEdit1=(CEdit*)GetDlgItem(IDC_EDIT1);
pEdit1->SetWindowText(" "+str);
这样貌似可以诶
这样显示的 字符串