Win32 编辑框 输入焦点
我想让对话框一启动,里面的编辑框就显示出光标可以让用户进行键盘输入而不用再用鼠标点一下编辑框才能输入。
但是用SetFocus()或是SendMessage(……EN_SETFOCUS……)都没用,焦点应该是得到了,但是光标没有出来,即使再加一句ShowCaret()也依旧没出显示出光标。但是用SendMessage(……WM_SETFOCUS……)能显示出光标,但就是不能输入了。
我用的是Win32 Application编程,不用MFC。对话框代码如下:
#include "data.h"
BOOL CALLBACK DialogPassword(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
{
char str[30];
switch (uMsg)
{
case WM_INITDIALOG:
MoveWindow(hwndDlg,500,300,230,180,TRUE);
// SetFocus(GetDlgItem(hwndDlg,IDC_EDIT_PASSWORD));
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
GetWindowText(GetDlgItem(hwndDlg,IDC_EDIT1),str,30);
if (strcmp(str,"123456") != 0)
{
MessageBox(hwndDlg, "对不起,您输入的口令有误,请返回重新输入","Error!",MB_OK);
}
else
{
MessageBox(hwndDlg,"口令正确,登入成功!","OK",MB_OK);
EndDialog(hwndDlg,wParam);
}
SendMessage(GetDlgItem(hwndDlg,IDC_EDIT1),WM_SETTEXT,0,(LPARAM)"");
break;
case IDCANCEL:
EndDialog(hwndDlg,wParam);
PostQuitMessage(0);
}
return TRUE;
}
return FALSE;
}