MFC 我想在文本框里面 自动加入 五个 - ,就像 ip control那样子可以自动加入四个点,我不知道这个应该怎么去写
1条回答 默认 最新
关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
要实现在 MFC 文本框中自动加入五个连字符,可以利用 MFC 的消息机制,在文本框接收到焦点后自动添加。具体实现步骤如下:- 在你想添加连字符的文本框控件上右键单击,选择“添加事件处理程序”。
- 在添加事件处理程序对话框中,选择“WM_SETFOCUS”消息,并点击“添加及编辑”按钮。
- 在弹出的“WM_SETFOCUS”消息处理函数中,添加如下代码:
CString strText; GetWindowText(strText); // 获取当前文本框的文本内容 if (strText.GetLength() == 5) // 如果当前文本框中的文本长度为5个字符,则添加五个“-” { strText += "-----"; SetWindowText(strText); // 将修改后的文本内容显示在文本框中 }- 编译并运行程序,将焦点移动到文本框上时,就会像 IP 控件一样自动添加五个连字符了。 代码示例:
void CMyDlg::OnSetfocusEdit1() { CString strText; GetDlgItemText(IDC_EDIT1, strText); if (strText.GetLength() == 5) { strText += "-----"; SetDlgItemText(IDC_EDIT1, strText); } }需要注意的是,如果用户手动输入了超过5个字符的文本内容,焦点离开文本框后也不会再自动添加连字符,这需要根据具体需求进行处理。
解决 无用评论 打赏 举报