C++从对话框中获取数据

Bio*_*cle 1 winapi dialog

我创建了一个简单的win32应用程序,它打开一个带有编辑控件的对话框.搜索几个小时后,我找不到从该编辑控件获取用户输入的方法并将其存储在字符串中.我认为这里的代码做了我想要的(没有测试过),但我不理解它.所以解释或其他解决方案会很好.(我正在使用VC++ 2012)

其他解决方案我发现IS C++:S

好的,我做了一个单独的消息循环,并在那里插入代码.现在看起来像这样:

INT_PTR CALLBACK IP(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        return (INT_PTR)TRUE;

    case WM_COMMAND:
        if (LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        else if(LOWORD(wParam) == IDOK)
        {
            TCHAR szBuf[40];
            GetDlgItemText(hDlg, IDC_EDIT1, szBuf, 39);
              //Breakpoint here!
              //szBuf="127.0.0.1" as intended :)
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}
Run Code Online (Sandbox Code Playgroud)

duD*_*uDE 7

尝试使用

UINT WINAPI GetDlgItemText(
  _In_   HWND hDlg,
  _In_   int nIDDlgItem,
  _Out_  LPTSTR lpString,
  _In_   int nMaxCount
);
Run Code Online (Sandbox Code Playgroud)

像这样:

TCHAR szBuf[BUFF_LEN];
GetDlgItemText(hWnd, TXT_MYEDIT_ID, szBuf, BUFF_LEN - 1);
Run Code Online (Sandbox Code Playgroud)