怎样使对话框中的Edit控件在得到焦点时选中全部字符?
怎样使对话框中的Edit控件在得到焦点时选中全部字符?
如果直接在OnSetfocus***()中用SetSel(-0x00010000);并看不见效果。
问题点数:100、回复次数:14Top
1 楼rowdy(阿丘)回复于 2005-12-20 15:59:27 得分 0
CEdit::SetSel
void SetSel( DWORD dwSelection, BOOL bNoScroll = FALSE );
void SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE );
Top
2 楼regionyu(旅者region)回复于 2005-12-20 16:09:45 得分 0
SetSelPos+SetSelLen具体函数我忘了Top
3 楼happyparrot(快乐鹦鹉)回复于 2005-12-20 16:14:32 得分 0
响应OnSetFocus()
然后调用m_Edit.SetSel(0,-1);Top
4 楼Chrissie(^-^)回复于 2005-12-20 16:14:50 得分 0
麻烦楼上的两位在Edit的SetFocus的事件中调用一下该函数,没有什么效果Top
5 楼njg_jh(糨糊)回复于 2005-12-20 16:15:53 得分 0
CEdit* editW = (CEdit*)GetDlgItem(IDC_EDIT_WIDTH);
editW->SetSel(0,editW->LineLength());Top
6 楼lzzqqq(Jonersen)回复于 2005-12-20 16:19:13 得分 0
CEdit::SetSel(-1,0xffff);Top
7 楼regionyu(旅者region)回复于 2005-12-20 16:20:43 得分 0
OnGetFocus?Top
8 楼happyparrot(快乐鹦鹉)回复于 2005-12-20 16:21:46 得分 0
nStartChar
Specifies the starting position. If nStartChar is 0 and nEndChar is –1, all the text in the edit control is selected. If nStartChar is –1, any current selection is removed.
Top
9 楼happyparrot(快乐鹦鹉)回复于 2005-12-20 16:25:09 得分 0
所以,响应OnSetFocus,然后调用SetSel(0,-1);就可以全选。Top
10 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-12-20 16:26:04 得分 90
在OnSetfocus***()中用
m_cEdit.PostMessage(EM_SETSEL, 0, -1);Top
11 楼Chrissie(^-^)回复于 2005-12-20 16:27:44 得分 0
我知道SetSel的用法,能烦请各位在Edit的SetFocus的事件中调用一下该函数,看看有没有什么效果?我这里是没有
Top
12 楼Chrissie(^-^)回复于 2005-12-20 16:33:07 得分 0
多谢goodboyws(深夜不眠者),问题解决了Top
13 楼njg_jh(糨糊)回复于 2005-12-20 16:39:09 得分 10
我试了,这样是可以的
void CTempDlg::OnSetfocusEdit3()
{
// TODO: Add your control notification handler code here
((CEdit*)GetDlgItem(IDC_EDIT3))->SetSel(0, -1);
}Top
14 楼wcocacola()回复于 2005-12-20 22:01:18 得分 0
加入你申请的控件是m_ctrlEdit;
则在OnInitDialog()
中添加:
m_ctrlEdit.SetSel(0,-1,FALSE);即可:)Top





