getwindowtext



Setwindowtext

Автор Ника Рика задал вопрос в разделе Другие языки и технологии

C++ GetWindowText висит и получил лучший ответ

Ответ от Денис Евдоченко[гуру]
CString strBuffer
GetWindowText (strBuffer); SetWindowText (strBuffer);
попробуйте в эти функции передавать указатель на простой массив символов (CHAR WCHAR) (узнать длину текста в окне - GetWindowTextLength), а не сомнительный CString. потом уже в CString запихнуть тот массив с символами
add:
а ваш GetWindowText (); из какой библиотеки? в виндоуз он
int GetWindowText(HWND hWnd,
LPTSTR lpString,
int nMaxCount
);
Денис Евдоченко
Мыслитель
(8176)
а если вот так попробовать для WinAPI:
::GetWindowTextA(hWnd, lpString, nMaxCount);
(добавить :: перед именем функции)
там, в классе CWnd, объявлена своя функция-член GetWindowTextA
void CWnd::SetWindowText(
LPCTSTR lpszString
);
если хотите использовать MFC, то, думаю, лучше будет получить указатель на строку до вызова этой функции.
возможно, там внутри синхронизация доступа к классу. Возможно, другой поток "занял" доступ к классу и не отдаёт его, типа, в обработчике он вызывает другой другой класс, а тот занят этим потоком(thread). Думаю, будет лучше всё управление окнами перетащить в 1н единственный поток, а другие пусть шлют ему сообщения через pipe и т.п.

Ответ от Зло[гуру]
скорее всего дедлок. добавь дебажный вывод к локу/анлоку мьютексов

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: C++ GetWindowText висит
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*