当前位置: 代码迷 >> 综合 >> C++/MFC-Edit
  详细解决方案

C++/MFC-Edit

热度:0   发布时间:2023-12-14 05:49:08.0

ID:IDC_EDIT1

CEdit变量:m_edit_ctl

CString变量:m_edit_cs


一、CEdit赋值

1.1、CWnd类

CWnd类对窗口句柄相关的API函数进行了集成封装。

this->GetDlgItem(IDC_EDIT1)->SetWindowText(L"0.0");

1.2、HWND窗口句柄

窗口句柄就是窗口在整个系统中通用的唯一的身份标识。

HWND h=::GetDlgItem(this->m_hWnd,IDC_EDIT1);
::SetWindowText(h,L".");

提示:作用域解析符+API名 表示调用非类成员API。

1.3、数值类变量

m_edit_cs=L"0.222";
UpdateData(false); //把变量里的值转化为字串并更新到Edit窗口上

数值类的可以在构造函数和OnCreate函数里初始化

1.4、控件类变量

m_edit_ctl.SetWindowText(L"0.222");

控件类的只能在OnInitDialog()里初始化

1.5、API函数

SetDlgItemText(IDC_EDIT1,_T("121212"));

1.6、其他类型的转换

int m_nPlanNum=0;
m_edt_cs.Format(L"%d",m_nPlanNum);//printf

二、CEdit取值

2.1、缓冲区

TCHAR *ps;          
ps=m_edt_cs.GetBuffer();//可将ps看作一个数组,故,可用ps[m_edt_cs.GetLength()-1]表示最后一个字符
m_edt_cs.ReleaseBuffer();

2.2、API函数

UpdateData(true);

2.3、控件类变量

WCHAR *ps = new WCHAR[m_edit_ctl.GetWindowTextLength() * sizeof(WCHAR)];//创建缓冲区,注意使用delete[]释放指针
m_edit_ctl.GetWindowTextW(ps, m_edit_ctl.GetWindowTextLength() * sizeof(WCHAR));//ps可看作数组

三、光标

m_edit_ctl.GetSel(nstart,nstart);//获取当前光标位置

m_edit_ctl.SetSel(start,end);//设置光标位置

m_edit_ctl.SetSel( CEdit::GetLength);//选中文本

m_edit_cs. GetString()[nstart-1];//获取最后输入的字符












  相关解决方案