0

私の問題は非常に単純です(少なくとも私はそうだと思います)。テキスト入力から値を取得し、txt ファイルに保存したいと思います。現在、私はこのコードを使用しています。アクションボタンは、クリックするとコンテンツをファイルに書き込むことを目的としています。しかし、代わりにファイルに登録されているボタンの値を取得しています。

    case WM_CREATE:{
        CreateWindow(
            TEXT("EDIT"), TEXT("value"), 
            WS_VISIBLE | WS_CHILD | WS_BORDER, 
            190, 50, 50, 20,
            hwnd, (HMENU) NULL, NULL, NULL 
        );

        CreateWindow(
            TEXT("BUTTON"), TEXT("Ok"), 
            WS_VISIBLE | WS_CHILD, 
            250, 10, 30, 20,
            hwnd, (HMENU) ID_BTN, NULL, NULL 
        );

        break;
    }

    case WM_COMMAND: {
        if (LOWORD(wParam) == ID_BTN) {
            std::ofstream outfile;
            outfile.open("C:\\file.txt", std::ios_base::app);
            outfile << ID_BTN;
            outfile.close();
            MessageBox(hwnd, "Done!", "Title", MB_ICONINFORMATION);
              return 0;
         }
         break;
    }

ありがとう。


編集:@ZanLynx、私はあなたが言ったことをやろうとしましたが、コンパイラはhwndTextが宣言されていたときに宣言されていないと言い続けました。

107 `hwndText' undeclared (first use this function)

これがコードです

#define ID_BTN 1
#define ID_TXT 2

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_CREATE:
        {

            HWND hwndText = CreateWindow(
                TEXT("Edit"), TEXT("Write here"), 
                WS_VISIBLE | WS_CHILD | WS_BORDER | ES_AUTOHSCROLL | ES_AUTOVSCROLL,  
                190, 10, 100, 20, 
                hwnd, (HMENU) ID_TXT, NULL, NULL
            );

            CreateWindow(
                TEXT("BUTTON"), TEXT("OK"), 
                WS_VISIBLE | WS_CHILD, 
                250, 10, 30, 20,
                hwnd, (HMENU) ID_BTN, NULL, NULL
            );

            break;
        }

        case WM_COMMAND: 
        {

            if (LOWORD(wParam) == ID_BTN) 
            {
                LRESULT iTextSize = SendMessage(hwndText, EM_GETLIMITTEXT, 0, 0);
                char *szText = new char[iTextSize];
                SendMessage(hwndText, WM_GETTEXT, iTextSize, (LPARAM)szText);

                std::ofstream outfile;
                outfile.open("C:\\f.txt", std::ios_base::app);
                outfile << szText;
                outfile.close();

                MessageBox(hwnd, "Done!", "Title", MB_ICONINFORMATION);
                return 0;
            };  

            break;
        }

        case WM_DESTROY:
            PostQuitMessage (0);
            break;

        default:
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}
4

1 に答える 1

1

ハンドルを編集ウィンドウに保存します。

次に、編集コントロール機能を使用してテキストを取得し、ファイルに書き込むことができます。

于 2012-10-25T01:04:24.897 に答える