1

我制作了一个简单的 win32 应用程序,它打开一个带有编辑控件的对话框。在搜索了几个小时后,我找不到从这个编辑控件获取用户输入并将其存储在字符串中的方法。我认为这里的代码可以满足我的要求(尚未对其进行测试),但我对此一无所知。所以解释或其他解决方案会很好。(我正在使用 VC++ 2012)

我发现其他解决方案是 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;
}
4

1 回答 1

7

尝试使用

UINT WINAPI GetDlgItemText(
  _In_   HWND hDlg,
  _In_   int nIDDlgItem,
  _Out_  LPTSTR lpString,
  _In_   int nMaxCount
);

像这样:

TCHAR szBuf[BUFF_LEN];
GetDlgItemText(hWnd, TXT_MYEDIT_ID, szBuf, BUFF_LEN - 1);
于 2013-04-24T15:31:55.073 回答