質問

Visual Studio RCを使用してWin32 Cでプログラムを作成していて、この一見簡単なタスクの実行方法を理解できません。静的なテキスト制御、編集コントロール、ボタンがあります。ユーザーがボタンをクリックすると、プログラムは編集コントロールのテキストを取得し、静的テキストボックスに含まれているものに追加するようになりました。多くの頭痛とさまざまな試みの後、私はまだこれを働くことができません。編集コントロールからテキストを取得できますが、それを静的コントロールクラッシュに追加しようとします。実際には明確にするだけで、テキストを細かく設定できます。プログラムをクラッシュする既存のテキストに追加するだけです。getWindowText()とsetWindowText(またはそれが好ましい場合は他のものである場合は、他の場合は他のもの)を使用してこれを行うことを可能にするいくつかのコードを投稿してください。これが私が持っているものです:

SendMessage(hwndEditControl, WM_GETTEXT,255,(LPARAM)editbuffer);
GetWindowText(hwndTextControl, (LPWSTR)allText, GetWindowTextLength(hwndTextControl));
//function to add data, please create on
SetWindowText(hwndTextControl, (LPCWSTR)allText);}
//where
static TCHAR*       editbuffer = new TCHAR; //feel free to change these declarations
static TCHAR*       allText    = new TCHAR;
.

あらゆる助けが高く評価されています!ありがとう!

役に立ちましたか?

解決

文字列バッファーの1つの文字を予約しています。

の代わりに
static TCHAR*       editbuffer = new TCHAR;
static TCHAR*       allText    = new TCHAR;
.

はるかに多くのメモリを予約する必要があります。:

static TCHAR*       editbuffer = new TCHAR[255];
static TCHAR*       allText    = new TCHAR[255];
.

これは、254文字を保持できる文字列バッファと終端ヌル文字を与えることができます。

しかし、あなたの関数内のスタック上のメモリを簡単に予約することをお勧めします。

void OnButtonClick()
{
    TCHAR editbuffer[255] = {0};
    TCHAR allText[255] = {0};
    ...
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top