Obtenir le Texte d'un Contrôle de modification (Pur API Win32)

J'ai essayé d'obtenir que cela fonctionne comme pour les âges, mais sans succès (visage triste).

int iChars = GetWindowTextLength (GetDlgItem(handle,ID))+1; //Room for '
int iChars = GetWindowTextLength (GetDlgItem(handle,ID))+1; //Room for '\0'
char* pstrText;
pstrText = (char*) malloc (sizeof(char)*iChars);
if (pstrText != NULL) {
//GetWindowText (GetDlgItem(handle,ID), pstrText, iChars);
GetDlgItemText(handle,ID,pstrText,iChars);
}
return pstrText; //Memory gets freed after it returns
'
char* pstrText; pstrText = (char*) malloc (sizeof(char)*iChars); if (pstrText != NULL) { //GetWindowText (GetDlgItem(handle,ID), pstrText, iChars); GetDlgItemText(handle,ID,pstrText,iChars); } return pstrText; //Memory gets freed after it returns

De travail exemple:

char* MWC::System::TextBox::GetText(){
    int len = SendMessage(handle, WM_GETTEXTLENGTH, 0, 0);
    char* buffer = new char[len];
    SendMessage(handle, WM_GETTEXT, (WPARAM)len+1, (LPARAM)buffer);
    return buffer;
}
Même si vous reassing le pointeur de la mémoire est supprimé donc le résultat sera toujours un supprimée de la mémoire. Aussi, la taille du pointeur sera 32/64 bits en fonction de la platforme de vous sont en cours d'exécution. La quatrième paramètre de la fonction GetDlgItemText doit être iChars.
Oui , et bien, ce n'est pas la cause de la fonction de ne pas fonctionner correctement.
"Pas de travail" n'est pas assez bon pour nous. Comment est-il échouer. Être précis. Nous ne pouvons pas voir votre écran.

OriginalL'auteur Christian | 2011-09-12