Windows 如何将LBtnMouseDown事件添加到编辑控件
当编辑控件上出现“LBUTTONDOWN”时,请清空文本框。Windows 如何将LBtnMouseDown事件添加到编辑控件,windows,winapi,Windows,Winapi,当编辑控件上出现“LBUTTONDOWN”时,请清空文本框。 我知道如何清空文本框,但我不知道添加此事件的位置 我的对话框功能: INT CALLBACK dlgProc(HWND hwnd, unsigned int msg, WPARAM wp, LPARAM lp){ switch(msg){ case WM_INITDIALOG: SetDlgItemText(hwnd, IDC_EDIT1, L"Please enter the txt");
我知道如何清空文本框,但我不知道添加此事件的位置 我的对话框功能:
INT CALLBACK dlgProc(HWND hwnd, unsigned int msg, WPARAM wp, LPARAM lp){
switch(msg){
case WM_INITDIALOG:
SetDlgItemText(hwnd, IDC_EDIT1, L"Please enter the txt");
break;
case WM_COMMAND:
switch(LOWORD(wp)){
case BTN_EXIT:
DestroyWindow(hwnd);
break;
case IDC_BUTTON1:
int len = GetWindowTextLength(GetDlgItem(hwnd,IDC_EDIT1));
if(len > 0){
TCHAR *buff = new TCHAR[len+1];
GetDlgItemText(hwnd, IDC_EDIT1, buff, len+1);
MessageBox(NULL,buff,L"Error message",MB_OK);
delete buff;
}
break;
}
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return false;
}
return true;
}
我猜想您真正想要的是响应接收输入焦点的控件,而不仅仅是按钮按下事件。例如,假设用户使用鼠标按钮在编辑控件上设置输入焦点,然后键入,然后再次单击编辑控件,同时该控件当前具有焦点。您可能不希望清除用户的文本。或者他们可以使用键盘设置输入焦点,例如TAB。我再次怀疑,你会希望通过这一行动来清除内容 假设我的理解是正确的,那么您应该在对话框过程的处理程序中侦听通知。无论用户如何使用鼠标或键盘将焦点转移到编辑控件,都会触发此操作 在代码中,只需在
WM_命令中展开开关语句即可:
case IDC_EDIT1:
if(HIWORD(wParam)==EN_SETFOCUS)
{
SetDlgItemText(hwnd, IDC_EDIT1, L"");
}
break;
你可以写一个简单的例子,或者编辑我的代码并输入新的代码。