VC MFC对话框有多个Edit控件,只更新其中一个Edit控件的显示(已设置对应的int变量),
VCMFC对话框有多个Edit控件,只更新其中一个Edit控件的显示(已设置对应的int变量),并且不影响其他Edit控件的输入,有没有比较好的方法?1,不想使用SetW...
VC MFC对话框有多个Edit控件,只更新其中一个Edit控件的显示(已设置对应的int变量),并且不影响其他Edit控件的输入,有没有比较好的方法? 1,不想使用SetWindowText函数 2,不想使用UpdateData(TRUE)和UpdateData(FALSE),因为这样会把其他控件的值更新进去,并且会比较耗资源。 求指教,谢谢!
展开
2个回答
展开全部
那只有SetWindowText等类似的API,SetDlgItemText和SetDlgItemInt后面其实也是调用的SetWindowText
SetWindowText调用的是
SendMessage(hWnd,WM_SETTEXT,0,text);
SetWindowText的源码(from reactos)
BOOL WINAPI
SetWindowTextW(HWND hWnd,
LPCWSTR lpString)
{
PWND pwnd;
pwnd = ValidateHwnd(hWnd);
if (pwnd)
{
if (!TestWindowProcess(pwnd))
{
/* do not send WM_GETTEXT messages to other processes */
return (DefWindowProcW(hWnd, WM_SETTEXT, 0, (LPARAM)lpString) >= 0);
}
return (SendMessageW(hWnd, WM_SETTEXT, 0, (LPARAM)lpString) >= 0);
}
return FALSE;
}
SetWindowText调用的是
SendMessage(hWnd,WM_SETTEXT,0,text);
SetWindowText的源码(from reactos)
BOOL WINAPI
SetWindowTextW(HWND hWnd,
LPCWSTR lpString)
{
PWND pwnd;
pwnd = ValidateHwnd(hWnd);
if (pwnd)
{
if (!TestWindowProcess(pwnd))
{
/* do not send WM_GETTEXT messages to other processes */
return (DefWindowProcW(hWnd, WM_SETTEXT, 0, (LPARAM)lpString) >= 0);
}
return (SendMessageW(hWnd, WM_SETTEXT, 0, (LPARAM)lpString) >= 0);
}
return FALSE;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询