您的位置:首页 > 其它

VC中edit控件的使用(转)

2009-04-14 21:04 281 查看
原文地址:http://hi.baidu.com/whyspai/blog/item/b79cd0bf7c0ea20c18d81f3d.html

通过类向导可以生成两种类成员变量,一种是cstring类型,一种是cedit类型。
在程序中使用时如果只是简单的获取 edit控件内容,或设置简单的内容建议使用cstring类型成员变量。
示例:
CString m_strEdit;
//获得edit框内容
UpdateData(TRUE);
此时m_strEdit就是edit框内容的字符串变量。
//要更新edit的话只要对m_strEdit进行赋值然后
UpdataData(FALSE);//即可
如果是一些对edit框的复杂操作建议用cedit类型。
示例:
CEdit m_ctrlEdit;
//将光标移到开头
m_ctrlEdit.SetSel(0,0);
//将光标移到末尾
m_ctrlEdit.SetSel(-1);
//选中所有内容
m_ctrlEdit.SetSel(0,-1);
//写入值
m_ctrlEdit.ReplaceSel("替换内容");
//得到当前edit框中的所有字符数
int iStart,iCount;//iCount 为字符数
m_ctrlEdit.SetSel(0,-1);
m_ctrlEdit.GetSel(iStart,iCount);
还一种可以直接用控件的id值来进行操作
示例:
(CEdit*)GetDlgItem(IDC_EDIT)
他类似于上边的m_ctrlEdit
这样写的好处是可以在消息传递中使用,便于不同窗口间传递edit内容
例如:下面的消息响应函数中
SetEditContent(WPARAM wPARAM, LPARAM lPARAM)
IDC_EDIT可以通过wPARAM传递近来,而字符传内容可以直接通过lPARAM传递近来
CString Msg="要传递的消息";
::SendMessage(m_hParent,WM_SENDMSG_EDIT,(WPARAM) IDC_EDIT, (LPARAM)(LPSTR)(LPCTSTR)Msg)
如:
((CEdit*)GetDlgItem(wPARAM))->SetSel(-1);
((CEdit*)GetDlgItem(wPARAM))->ReplaceSel((LPCSTR)lPARAM);
MFC中提供的CEdit 的接口函数如下:
class CEdit : public CWnd
{
DECLARE_DYNAMIC(CEdit)
// Constructors
public:
CEdit();
BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
// Attributes
BOOL CanUndo() const;
int GetLineCount() const;
BOOL GetModify() const;
void SetModify(BOOL bModified = TRUE);
void GetRect(LPRECT lpRect) const;
DWORD GetSel() const;
void GetSel(int& nStartChar, int& nEndChar) const;
HLOCAL GetHandle() const;
void SetHandle(HLOCAL hBuffer);
#if (WINVER >= 0x400)
void SetMargins(UINT nLeft, UINT nRight);
DWORD GetMargins() const;
void SetLimitText(UINT nMax);
UINT GetLimitText() const;
CPoint PosFromChar(UINT nChar) const;
int CharFromPos(CPoint pt) const;
#endif
// NOTE: first word in lpszBuffer must contain the size of the buffer!
int GetLine(int nIndex, LPTSTR lpszBuffer) const;
int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const;
// Operations
void EmptyUndoBuffer();
BOOL FmtLines(BOOL bAddEOL);
void LimitText(int nChars = 0);
int LineFromChar(int nIndex = -1) const;
int LineIndex(int nLine = -1) const;
int LineLength(int nLine = -1) const;
void LineScroll(int nLines, int nChars = 0);
void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);
void SetPasswordChar(TCHAR ch);
void SetRect(LPCRECT lpRect);
void SetRectNP(LPCRECT lpRect);
void SetSel(DWORD dwSelection, BOOL bNoScroll = FALSE);
void SetSel(int nStartChar, int nEndChar, BOOL bNoScroll = FALSE);
BOOL SetTabStops(int nTabStops, LPINT rgTabStops);
void SetTabStops();
BOOL SetTabStops(const int& cxEachStop); // takes an 'int'
// Clipboard operations
BOOL Undo();
void Clear();
void Copy();
void Cut();
void Paste();
BOOL SetReadOnly(BOOL bReadOnly = TRUE);
int GetFirstVisibleLine() const;
TCHAR GetPasswordChar() const;
// Implementation
public:
virtual ~CEdit();
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: