Как записать тест в окно другой программы.
От: avt1  
Дата: 23.04.03 01:53
Оценка:
Получил hWnd окна созданного другой (своей же) программой.
Далее делаю:
CWnd* pWnd;
pWnd = new CWnd;
if (pWnd->Attach(hwnd))
{
CDC* dc;
dc=pWnd->GetDC();
dc->TextOut(50,50,"dwgweeeeeeeeeeeeeeeee");
}
Не пишет, хотя в дебаггере все указатели не нулевые.
Почему?
Re: Как записать тест в окно другой программы.
От: Serguei666 Беларусь  
Дата: 23.04.03 03:31
Оценка:
Здравствуйте, avt1, Вы писали:

A>Получил hWnd окна созданного другой (своей же) программой.

A>Далее делаю:
A>CWnd* pWnd;
A>pWnd = new CWnd;
A>if (pWnd->Attach(hwnd))
A>{
A>CDC* dc;
A>dc=pWnd->GetDC();
dc->TextOut(50,50,"dwgweeeeeeeeeeeeeeeee");
A>}
A>Не пишет, хотя в дебаггере все указатели не нулевые.
A>Почему?
Потому что вы неправильно делаете.
Ваш этот тестовый текс должен отрисовыватся самим окном в OnPaint или OnDraw
Хотите сказать 'спасибо'? Тогда поставьте оценку
Re[2]: Как записать тест в окно другой программы.
От: avt1  
Дата: 23.04.03 04:01
Оценка:
Здравствуйте, Serguei666, Вы писали:

>Ваш этот тестовый текс должен отрисовыватся самим окном в

>OnPaint или kl;;l;OnDraw

Отдельно, в обработчике OnOk() в свое диалоговое окно запись проходит и без OnPaint:
CDC* dc;
dc=GetDC();
dc->TextOut(20,20,"dwgweeeeeeeeeeeeeeeee");
Если правда Ваша, то как именно, используя указанные Вами обработчики, писать в окно другой программы?
Re[3]: Как записать тест в окно другой программы.
От: Serguei666 Беларусь  
Дата: 23.04.03 05:40
Оценка:
Здравствуйте, avt1, Вы писали:

A>Здравствуйте, Serguei666, Вы писали:


>Ваш этот тестовый текс должен отрисовыватся самим окном в

>OnPaint или kl;;l;OnDraw

A>Отдельно, в обработчике OnOk() в свое диалоговое окно запись проходит и без OnPaint:

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

A>CDC* dc;

A>dc=GetDC();
dc->TextOut(20,20,"dwgweeeeeeeeeeeeeeeee");
A>Если правда Ваша, то как именно, используя указанные Вами обработчики, писать в окно другой программы?
Заводите в вашем окне переменную типа CString, и рисуете ее содержимое в OnPaint или OnDraw (в зависимости от того, от кого ваше окошко унаследовано)

Т.е. ваш код таким должен быть:

// строчка становится собственностью окна
class CMyWnd :
{
CString m_MyText;
public:
void SetMyText(CString Value) { m_MyText = Value; }
...
};

// Приведенный вами код меняется на этот:
CYourWnd *pWnd = // вы, наверное, знаете, откуда это взять
pWnd->SetMyText("dwgweeeeeeeeeeeeeeeee");
pWnd->Invalidate(); // заставим окно перерисоваться.

// CMyWnd::OnPaint или CMyWnd::OnDraw
{
...
if(!m_MyText.IsEmpty())
pDC->TextOut(50,50,m_MyText);
...
}
Хотите сказать 'спасибо'? Тогда поставьте оценку
Re: Как записать тест в окно другой программы.
От: Patalog Россия  
Дата: 23.04.03 06:32
Оценка:
Здравствуйте, avt1, Вы писали:

Ежели ето окно представляет собой что-то типа static, edit, button etc. то можно воспользоваться SetWindowText
Почетный кавалер ордена Совка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.