Question

Je fais un programme dans Win32 C à l'aide de Visual Studio RC et je ne peux pas comprendre comment faire cette tâche apparemment simple.J'ai un contrôle de texte statique, un contrôle d'édition et un bouton.Lorsque l'utilisateur clique sur le bouton, je ne vas pas le programme de prendre le texte dans le contrôle d'édition et de l'ajouter à tout ce qui est dans la zone de texte statique.Après beaucoup de maux de tête et des tentatives diverses, je ne peux toujours pas obtenir cela pour travailler.Je peux récupérer le texte de l'amende de la commande d'édition, mais toute tentative de l'ajouter aux accidents de contrôle statique.Eh bien, juste pour clarifier, je peux définir le texte bien;Il s'agit simplement d'ajouter au texte existant qui bloque le programme.Pourriez-vous poster un certain code qui me permettrait de le faire à l'aide de GetWindowtext () et de Setwindowtext (), (ou autre chose si elle est préférable).Voici ce que j'ai:

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;

Toute aide beaucoup appréciée!Merci!

Était-ce utile?

La solution

Vous réservez uniquement un caractère pour vos tampons à cordes.Donc au lieu de

static TCHAR*       editbuffer = new TCHAR;
static TCHAR*       allText    = new TCHAR;

Vous devez réserver beaucoup plus de mémoire, par exemple:

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

Ce qui vous donnerait des tampons à cordes pouvant contenir 254 caractères et le charme NULL terminant.

Cependant, je vous recommanderais de simplement réserver la mémoire sur la pile à l'intérieur de votre fonction:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top