Php峥 2024-03-22 15:25 采纳率: 0%
浏览 3

MFC 文本框加自动加-,像ip那样

MFC 我想在文本框里面 自动加入 五个 - ,就像 ip control那样子可以自动加入四个点,我不知道这个应该怎么去写

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-03-22 15:25
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    要实现在 MFC 文本框中自动加入五个连字符,可以利用 MFC 的消息机制,在文本框接收到焦点后自动添加。具体实现步骤如下:
    1. 在你想添加连字符的文本框控件上右键单击,选择“添加事件处理程序”。
    2. 在添加事件处理程序对话框中,选择“WM_SETFOCUS”消息,并点击“添加及编辑”按钮。
    3. 在弹出的“WM_SETFOCUS”消息处理函数中,添加如下代码:
    CString strText;
    GetWindowText(strText); // 获取当前文本框的文本内容
    if (strText.GetLength() == 5) // 如果当前文本框中的文本长度为5个字符,则添加五个“-”
    {
        strText += "-----";
        SetWindowText(strText); // 将修改后的文本内容显示在文本框中
    }
    
    1. 编译并运行程序,将焦点移动到文本框上时,就会像 IP 控件一样自动添加五个连字符了。 代码示例:
    void CMyDlg::OnSetfocusEdit1()
    {
        CString strText;
        GetDlgItemText(IDC_EDIT1, strText);
        if (strText.GetLength() == 5)
        {
            strText += "-----";
            SetDlgItemText(IDC_EDIT1, strText);
        }
    }
    

    需要注意的是,如果用户手动输入了超过5个字符的文本内容,焦点离开文本框后也不会再自动添加连字符,这需要根据具体需求进行处理。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月22日