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"
m_Pesel.GetWindowTextW(Pesel);
Dlaczego metoda GetWindowTextW
pobiera u Ciebie tylko jeden parametr, podczas gdy tutaj mam napisane, że:
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:
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;
}
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.