以前找自网络,现个底!!!
LRESULT CALLBACK EditProc(HWND hedit, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_CHAR:
{
if (wParam == 1)
{
SendMessage(hedit, EM_SETSEL, 0, -1);
return true;
}
break;
}
default:
break;
}
return CallWindowProc(g_EditProc, hedit, Msg, wParam, lParam);
}
WNDPROC g_EditProc;
g_EditProc = (WNDPROC)SetWindowLong(GetDlgItem(hDlg, IDC_EDIT1), GWL_WNDPROC, (long)EditProc);
追加内容
::SendMessage(hEdit, EM_SETSEL, LOWORD(-1), HIWORD(-1));
::SendMessage(hEdit, EM_REPLACESEL, true, (LPARAM)(_T("Hello, World!")));
EM_SETSEL
参数
选择的起始字符位置。
参数
选择的结束字符位置。
起始值可以大于结束值。两个值中较低的一个指定选择中第一个字符的字符位置。较高的值指定超出选择范围的第一个字符的位置。
起始值是选择的锚点,结束值是活动结束。如果用户使用 SHIFT 键调整选择的大小,活动端可以移动但锚点保持不变。
如果开始为 0,结束为 -1,则选择编辑控件中的所有文本。如果开始是 -1,则取消选择任何当前选择。
编辑控件:无论开始和结束的相对值如何,控件都会在结束位置显示一个闪烁的插入符号。
EM_REPLACESEL
参数
指定是否可以撤消替换操作。如果这是TRUE,则可以撤消操作。如果这是FALSE,则无法撤消操作。
参数
指向包含替换文本的以空字符结尾的字符串的指针。