搜索
首页 电脑/网络 程序设计 C#/.NET

vs2005的EDit box在vs2008的哪里?

vs2005的EDit box在vs2008的哪里?

全部回答

2014-04-16

47 0
    MFC edit control 用法(总结) MFC里面的EDIT Control控件的用法是怎么样的,1。怎么样才能赋值给EDIT Control控件并在EDIT Control控件显示出来;2。
  怎么取得EDIT Control控件的值并传递给一个变量?希望各位大侠帮帮忙!//获得EDITCEdit* pBoxOne;pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);//付值pBoxOne->SetWindowText( _T"FOO" );//取值CString str;pBoxOne->GetWindowText(str);GetDlgItem(IDC_EDIT1)->SetWindowText( _T"FOO" );也可以//取值CString str;GetDlgItem(IDC_EDIT1)->GetWindowText(str); EditControl是在MFC对话框中最频繁的使用的控件之一 VC++2005提供EditControl的属性和控件事件操作简单方便 1只允许输入数字如果设置EditControl中只能输入数字,在VC6。
    0中需要编写一个派生类来达到目的,而在VC++2005下只需要在属性对话框中将Number的属性值设 为True就可以了。 2获取EditControl的内容两种方法第一种,利用MFC应用程序向导生成一个基于对话框的应用程序,从资源视图中选择该Dialog窗体,利用右侧的工具箱,向Dialog内添加一个 EditControl项,声明控件变量的类别为Value,变量类型为CString,变量名为m_sEdit_Content。
     CString m_sEdit_Content;CString s;UpdateData(true);s=m_sEdit_Content。GetString();MessageBox(s,_T("获取编辑框的内容"),MB_OK);s。
  ReleaseBuffer(); 这样就取得了编辑框的内容 UpdateData(true);这句代码很重要,它的作用是将输入的数据装入EditControl对应的变量m_sEdit_Content中。
    由于MFC应用程序向导默认是使用Unicode库,所以MessageBox中的字符串需要用_T(),否则会出现const char[]转换LPCTSTR错误,如果不使用 Unicode库就不需要_T()。
   第二种方法声明控件变量的类别为Control,变量类型为CEdit,变量名为m_Edit_Content。  代码如下(Unicode)CString s;s。GetBufferSetLength(1024);m_Edit_Content。
  GetWindowTextW(s。GetBuffer(),s。GetLength());MessageBox(s,_T("获取文本框的内容"),MB_OK);s。  ReleaseBuffer(); 如果不是Unicode下获取编辑框内容的函数就是GetWindowTextA 3将EditControl中的内容转化为整数 在限制编辑框只能数字之后,要将字符串转化为整数声明控件变量的类别为Value,变量类型为CString,变量名为m_sEdit_Content。
    CString s;UpdateData(true);s=m_sEdit_Content。GetString();int n=_tstoi(s);s。ReleaseBuffer();n就是所需要的整数在VC2005下字符串转换成整数需要_tstoi这个函数 4限制编辑框的输入长度声明控件变量的类别为Control,变量类型为CEdit,变量名为m_Edit_Content。
    在对话框初始化的地方写m_Edit_Content。SetLimitText(1);编辑框就只能输入一个字符了。 最后:要说的是GetDlgItemText不要轻易用……知道就行,如果真用,你可以试试…… SetSel(start,end)作用: 定制EDIT的所选择内容。
    间接地可以用于定位光标位置。 使用例子: EXP1:设置光标 CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT1); pEdit->SetSel(2,2); pEdit->SetFocus(); EXP2:选择内容 CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT1); pEdit->SetSel(0,2);//两个字符 说明: 如果出现光标设置失效的情况,可能是由于以下情况:因为UpdateData()的作用也会重置光标,所以用于设置光标时一定要放在UpdateData()之后。
     如果用于选择内容:SetSel(0,-1)表示全选;SetSel(-1,i)表示删除所有。 1。怎么在CEDIT执行回车换行显示的功能? CEdit控件设置want return 属性 并设置Multiline属性,此时用 CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1); pEdit->SetWindowText("第一\r\n第二\r\n第三"); 将显示3行。
     2。作为密码输入控件使用。 m_WndEDIT4。SetPasswordChar('*'); 3。CEDIT没有AppendText功能怎么办? int nLength = m_WndEDIT4。
  SendMessage(WM_GETTEXTLENGTH); m_WndEDIT4。  SetSel(nLength, nLength); m_WndEDIT4。
  ReplaceSel( " abc " ); 1。如果文本框和变量建立了关联直接 UpdateData(TRUE) //用于获得文本框中的内容; UpdateData(FALSE) //用于更新文本框的内容并和更新关联的变量 例如: DDX_Text(pDX, IDC_EDIT1, m_sEdit1);//把变量m_sEdit1与IDC_EDIT1建立联系 //让文本框中显示“Hello” m_sEdit1 = "Hello"; UpdateData(FALSE); //获得文本框的用户输入内容 UpdateData(TRUE);//如果用户写入的是"MingFei",那么m_sEdit1的值应该是"MingFei" if (m_sEdit1 == "MingFei") { AfxMessageBox("OK"); } 2。
     CString str; GetDlgItemText(IDC_EDIT1, str);//获得文本框中的内容,保存在str中 SetDlgItemText(IDC_EDIT1, str);//向文本框中写入str 3。
  麻烦点,其实就是第二种方法 CEdit *edit=(CEdit*)GetDlgItem(IDC_EDIT1); CString dir; edit->GetWindowText(dir); (47) 如何限制编辑框中的准许字符   如果用户在编辑控件中只允许接收数字,可以使用一个标准的编辑控件并指定新的创建标志ES_NUMBERS,它是Windows 95新增加的标志,该标志限制 编辑控件只按收数字字符。
    如果用户需要复杂的编辑控件,可以使用Microsoft 的屏蔽编辑控件,它是一个很有用的OLE定制控件。 如果希望不使用OLE 定制控件自己处理字符,可以派生一个CEdit类并处理WM_CHAR消息,然后从编辑控件中过滤出特定的字符。
  首先,使用ClassWizard建立一个 CEdit的派生类,其次,在对话类中指定一个成员变量将编辑控件分类在OnInitdialog 中调用CWnd: : SubclassDlgItem 。
       //In your dialog class declaration (。H file )   private : CMyEdit m_wndEdit // Instance of your new edit control 。
     //In you dialog class implementation (。  CPP file )   BOOL CSampleDialog : : OnInitDialog ( )   {   …   //Subclass the edit lontrod 。
     m_wndEdit 。SubclassDlgItem (IDC_EDIT,this)   …   }   使用ClassWizard处理WM_CHAR消息,计算nChar参量并决定所执行的操作,用户可以确定是否修改、传送字符。
    下例说明了如何显示字母字符,如果字符是字母字符,则调用CWnd OnChar,否则不调用OnChar。   //Only display alphabetic dharacters 。
     void CMyEdit : : OnChar (UINT nChar , UINT nRepCnt , UITN nFlags )   {   //Determine if nChar is an alphabetic character。
       if (: : IsCharAlpha ( ( TCHAR) nChar ) )   CEdit : : OnChar (nChar, nRepCnt , nFlags )   }   如果要修改字符,则不能仅仅简单地用修改过的nChar调用CEdit: : OnChar,然后CEdit: : OnChar调用CWnd: : Default获取原来的wParam 和lParam 的值,这样是不行的。
    要修改一个字符,需要首先修改nChar,然后用修改过的nChar调用CWnd: : DefWindowProc。下例说明了如何将字符转变为大写:   //Make all characters uppercase   void CMyEdit : : OnChar (UINT nChar , UINT nRepCnt , UINT nFlags )   {   //Make sure character is uppercase 。
       if (: : IsCharAlpha ( 。( TCHAR) nChar)   nChar=: : CharUpper(nChar )   //Bypass default OnChar processing and directly call   //default window proc。
       DefWindProc (WM_CHAR, nChar , MAKELPARAM (nRepCnt, nFlags ))   } 枚举所有字体 LOGFONT lf; lf。
  lfCharSet = DEFAULT_CHARSET; // Initialize the LOGFONT structure strcpy(lf。  lfFaceName,""); CClientDC dc (this); // Enumerate the font families ::EnumFontFamilie***((HDC) dc,&lf, (FONTENUMPROC) EnumFontFamProc,(LPARAM) this,0); //枚举函数 int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf, LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lparam) { // Create a pointer to the dialog window CDay7Dlg* pWnd = (CDay7Dlg*) lparam; // add the font name to the list box pWnd ->m_ctlFontList。
    AddString(lpelf ->elfLogFont。lfFaceName); // Return 1 to continue font enumeration return 1; } 本文来自CSDN博客,转载请标明出处:http://blog。
    csdn。net/cciey/archive/2008/07/24/2702356。aspx 用Edit Box 显示系统实时时间: 在对话框的初始化函数OnInitDialog()中添加以下程序: SYSTEMTIME st; GetLocalTime(&st); CString str_temp; str_temp。
    Format("%u/%u/%u %u:%u:%u:%u\n", st。wYear, st。wMonth, st。wDay, st。wHour, st。wMinute, st。
  wSecond, st。wMilliseconds); CEdit* edt = (CEdit*)GetDlgItem(IDC_EDIT_TIME); edt->SetWindowText(str_temp); 用Edit Box 显示系统当前时间: 在对话框的初始化函数OnInitDialog()中添加以下程序: CString str; CTime tm; tm = CTime::GetCurrentTime(); //把获得的当前时间保存到变量tm中 str = tm。
    Format("%Y年%m月%d日 %X"); this->GetDlgItem(IDC_EDIT1)->SetWindowText(str); 用Edit Box 只接受数字输入: 在对话框初始化函数中添加以下代码: CEdit* m_edit = (CEdit*)GetDlgItem(IDC_EDIT1); long wl = GetWindowLong(m_edit->m_hWnd, GWL_STYLE); //获得Edit Box的窗口风格 SetWindowLong(m_edit->m_hWnd, GWL_STYLE, wl | ES_NUMBER); //设置Edit Box新风格 自定义Edit Box的可输入内容: 重载对话框的PreTranslateMessage函数,并且添加以下代码: BOOL CLangziDlg::PreTranslateMessage(MSG* pMsg) { CEdit* m_edit = (CEdit*)GetDlgItem(IDC_EDIT1); if((pMsg->hwnd == m_edit->m_hwnd) && (pMsg->message == WM_CHAR)) { if(65 != pMsg->wParam) //只允许输入字母A(A的ascll码是65) return TRUE; } }。
    。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C#/.NET
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
C#/.NET
VB
数据库
C/C++
汇编语言
JAVA相关
VC++
其他编程语言
C#/.NET
C#/.NET
举报
举报原因(必选):
取消确定举报