Visual C ++ копировать содержимое текстового поля - PullRequest
0 голосов
/ 02 октября 2009

как скопировать текстовое поле-> текстовое содержимое в массив символов? я работаю в vc ++.

Ответы [ 3 ]

1 голос
/ 02 октября 2009

Использовать CWnd :: GetWindowText ()

CString str;
CWnd* pWnd = GetDlgItem(IDC_WHATEVER);
pWnd->GetWindowText(str);

Помещает содержимое элемента управления в строку CString или вы можете использовать версию массива:

TCHAR sz[10];
int nRet = pWnd->GetWindowText(sz, 10);
0 голосов
/ 13 сентября 2015

Вы также можете попробовать вот так .....

CString csTbxName;
GetDlgItemText(IDC_EDIT1,csTbxName);
const char* pchTbxName = csTbxName.GetBuffer();
char chTbxNameDup[5000];
ZeroMemory(chTbxNameDup,5000);
if(csTbxName.GetLength() < 5000)
{
    memcpy(chTbxNameDup,(void*)pchTbxName,csTbxName.GetLength());
}
0 голосов
/ 06 октября 2009

Ваш запрос неясен, поэтому мне придется принять все.

Предполагая, что вы используете MFC, добавьте переменную типа элемента управления в поле редактирования (скажем, m_Edit) и используйте m_Edit.GetWindowText (), чтобы получить текст.

Или, если вы используете обычный Win32, используйте GetWindowText () Win32 API.

На дополнительном примечании, как указал другой пользователь, прекратите использовать такие вещи, как массивы символов фиксированного размера, для хранения строк, если вы используете c ++. Используйте что-то вроде std :: string или CString, если вы используете MFC. Таким образом вы можете легко манипулировать строками, и ваш код будет менее подвержен ошибкам.

Ура, Раджеш. MVP, Visual C ++

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...