我有一个CEdit派生控件,它在底层数据为空时显示字符串“N/A”。我最近添加了代码以清空控件(SetWindowText(“”);)当它获得焦点并设置如果返回“N/A”(SetWindowText(“N/A”))当用户离开焦点时失去焦点控件为空。唯一的问题是将窗口文本设置为“”或“N/A”会触发EN_CHANGE,因此我的对话框认为数据已更改。如何避免在调用SetWindowText(WM_SETTEXT)时触发EN_CHANGE?注意事项-我知道我可以将编辑控件设置为Multiline=TRUE但这对我来说是NotAcceptable。-我的应用程序是MBCS,所以我不能使用Set
我正在使用VC9,我有一个CEdit控件,其内容在单击按钮时重置为默认测试(例如-“填充”),然后我调用CEdit控件的SetFocus。问题是光标在默认文本的开头闪烁,我希望它在默认字符串的末尾闪烁。如何做到这一点? 最佳答案 您可以使用CEdit::SetSel来完成那个。例子:CEdit*e=(CEdit*)GetDlgItem(IDC_EDIT1);e->SetWindowText("helloworld");e->SetFocus();e->SetSel(0,-1);//selectalltextandmovecursor
在我的C++Win32GUI应用程序中,我有一个对话框,其中包含一个从对话框模板创建的编辑控件:EDITTEXTIDC_EDIT_Id,X,Y,W,H,ES_MULTILINE|ES_AUTOVSCROLL|ES_WANTRETURN|WS_VSCROLL每当我手动输入带有回车符的多行文本并调用GetWindowText()时,检索到的文本被分成包含CR和LF字符的行正如预期的那样。但是,当我尝试使用SetWindowText()将相同的文本放回编辑控件时,该控件将该文本显示为单个字符串。为什么它会表现出这种行为,我该如何解决这个问题? 最佳答案