Pobieranie tekstu z edit control do zmiennej

Pobieranie tekstu z edit control do zmiennej
K3
  • Rejestracja:prawie 10 lat
  • Ostatnio:5 miesięcy
  • Postów:98
0

Cześć, tak jak w temacie mam problem z pobraniem tekstu wpisanego w edit control do zmiennej CString .Próbowałem robić to za pomocą GetWindowTextW() ale wyskakuje mi błąd "Debug Assertion Failed"

Kopiuj
	m_Pesel.GetWindowTextW(Pesel);
edytowany 2x, ostatnio: flowCRANE
Bartosz36
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 4 lata
  • Postów:348
0

Dlaczego metoda GetWindowTextW pobiera u Ciebie tylko jeden parametr, podczas gdy tutaj mam napisane, że:

Kopiuj
int
WINAPI
GetWindowTextA(
    _In_ HWND hWnd,
    _Out_writes_(nMaxCount) LPSTR lpString,
    _In_ int nMaxCount);
_Ret_range_(0, nMaxCount)
WINUSERAPI
int
WINAPI
GetWindowTextW(
    _In_ HWND hWnd,
    _Out_writes_(nMaxCount) LPWSTR lpString,
    _In_ int nMaxCount);
#ifdef UNICODE
#define GetWindowText  GetWindowTextW
#else
#define GetWindowText  GetWindowTextA
#endif // !UNICODE

Typ CString zawiera znaki typu wchar_t, co także oddaje wykorzystana przez Ciebie metoda. Więc (ponieważ nie pokazałeś całego kodu) wnioskuję, że to powinno działać.

Ja u siebie kiedyś zrobiłem to tak:

Kopiuj
void WindowC::ReadFrame( const MainControlls_t textFrame )
{
    wchar_t* tmpTextBuffer = new wchar_t[ MAX_USER_DATA_TEXT_LENGTH ];
    memset( tmpTextBuffer, '\0', MAX_USER_DATA_TEXT_LENGTH );

    // Pobieram text z ramki podanej jako parametr  textFrame do bufora tmp
    GetWindowText( controlls.at( textFrame ), tmpTextBuffer, MAX_USER_DATA_TEXT_LENGTH );

    // Tutaj przekopiowuję bufor do odpowiedniego miejsca w systemie
    ...

    delete[] tmpTextBuffer;
}

ExtendedVector czyli std::vector<T> z wygodą List<T> z .NET (ForEach, FindAll, itd...)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.