1

エディット コントロールのあるダイアログ ボックスを開く単純な 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;
}
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 に答える