【问题标题】:Set cursor inside ComboBox to the end of the text将 ComboBox 内的光标设置到文本的末尾
【发布时间】:2021-12-28 12:51:30
【问题描述】:

我正在尝试将光标设置到 ComboBox 编辑文本的末尾。我尝试使用CB_SETEDITSEL 来设置它,但它不起作用。它不会将光标放在文本的末尾,而是选择整个文本:

SendDlgItemMessage(hDlg, textID, CB_SETEDITSEL, textLength, textLength);

奇怪的是,EM_SETSEL 适用于编辑控件:

SendDlgItemMessage(hDlg, textID, EM_SETSEL, textLength, textLength);

EM_SETSELCB_SETEDITSEL 的文档基本相同。

【问题讨论】:

  • “EM_SETSEL 和 CB_SETEDITSEL 的文档基本相同”:不完全一样。仔细阅读 wParam 和 lParam 对 CB_SETEDITSELEM_SETSEL 的作用

标签: c++ user-interface winapi mfc


【解决方案1】:

感谢 jabberwocky 指出两者的文档在使用 LPARAM 时有所不同。

CB_SETEDITSEL 不使用 WPARAM

EM_SETSEL 同时使用 LPARAM 和 WPARAM

为组合框做我想做的事情:

SendDlgItemMessage(hDlg, textID, CB_SETEDITSEL, 0, MAKELPARAM(textLength,textLength));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2021-06-02
    • 1970-01-01
    相关资源
    最近更新 更多