목록 상자, 편집 상자 및 보내기 및 지우기라는 두 개의 단추가있는 간단한 대화 상자가 있습니다. 기본값은 보내기입니다. 눌려지면 문자열이 편집 상자에서 읽히고 목록 상자에 추가됩니다. 지우기는 스스로를 말합니다. 입력을 처음 누르면 모든 것이 작동하지만 입력을 두 번째로 누르면 응답/등록하지 않습니다. 버튼을 클릭하면 모든 것이 의도 한대로 작동합니다.기본 누름 단추가 한 번만 작동합니다.
편집 상자로 다시 포커스를 변경 한 후에 DM_SETDEFID를 사용하려고했으나 아무것도 수행하지 않았습니다.
불필요한 코드를 제거하여 누락 된 부분이 없기를 바랍니다. 리소스 파일에서
INT_PTR CALLBACK CHAT(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDC_BUTTON1)
{
string strDisplay="You: "+strMessage;
TCHAR szDisplay[MESSAGE_SIZE];
strcpy_s(szDisplay, strDisplay.c_str());
SendDlgItemMessage(hDlg, IDC_LIST1, LB_ADDSTRING, NULL, (LPARAM)&szDisplay);
SetDlgItemText(hDlg, IDC_EDIT1, "");
}
SetFocus(GetDlgItem(hDlg, IDC_EDIT1));
}
else if(LOWORD(wParam) == IDC_BUTTON2)
{
SetDlgItemText(hDlg, IDC_EDIT1, "");
}
break;
case WM_CLOSE:
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
}
return (INT_PTR)FALSE;
}
:
IDD_CHAT_DIALOG DIALOGEX 0, 0, 309, 176
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Chat"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
LTEXT "Message:",IDC_STATIC,198,12,102,8
EDITTEXT IDC_EDIT1,198,24,102,108,ES_MULTILINE
DEFPUSHBUTTON "Send",IDC_BUTTON1,198,138,104,14
PUSHBUTTON "Clear",IDC_BUTTON2,198,156,104,14
LISTBOX IDC_LIST1,7,7,185,167,LBS_NODATA | LBS_NOSEL | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
END
코드를 게시 할 수 있습니까? – MDMoore313
@ MDMoore313 완료했습니다. – BioCycle