2010-09-23 3 views

ответ

7

Используйте API-интерфейс Win32 GetWindowText, проходящий в ручке окна текстового поля.

Если вы хотите получить текст с другого процесса, используйте WM_GETTEXT вместо SendMessage.

+0

Если в строке У меня была "1 + 1", вы знаете, как я могу это сделать сделать 1 + 1? – ITg

+0

@ITg: Вам, вероятно, потребуется проанализировать строку на части, а затем выполнить расчет. –

+0

ОК, спасибо за помощь – ITg

0
//unicode std::string or std::wstring 
typedef std::basic_string<TCHAR> unicode_string; 

unicode_string GetWinString(HWND h) 
{ 
int len = ::GetWindowTextLength(h); 
if (len) 
    { 
    std::vector<TCHAR> tmp(len + 1,_T('\0')); 
    ::GetWindowText(h,&tmp[0],len + 1); 
    return &tmp[0]; 
    } 
return _T(""); 
} 
1

Поправка к последнему сообщению:

//unicode std::string or std::wstring 
typedef std::basic_string<TCHAR> unicode_string; 

unicode_string GetWinString(HWND h) 
{ 
int len = ::GetWindowTextLength(h); 
if (len) 
    { 
    std::vector<TCHAR> tmp(len + 1,_T('\0')); 
    ::GetWindowText(h,&tmp[0],len + 1); 
    return &tmp[0]; 
    } 
return _T(""); 
} 
+0

Под вашими сообщениями есть опция «изменить»; пожалуйста, не оставляйте дополнительные ответы. – MSalters