Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сообщение виду (doc\view) 
:(
    Опции темы
13dreams
Дата 28.9.2010, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 1.7.2010

Репутация: нет
Всего: нет



создаю поток в OnCreate 

Код

HWND *phObjectHandle = new HWND;
  *phObjectHandle = GetSafeHwnd();
    m_pThread=AfxBeginThread(ThreadProc, phObjectHandle);  //Запуск потока


Код

UINT CThreadSdiView::ThreadProc(LPVOID param)  //Создание потоковой функции 
{
    HWND *phObjectHandle = static_cast<HWND *>(param);    

//    
    while(1)
    {    
        *phObjectHandle=::GetForegroundWindow();    //ОКНУ КОТОРОЕ АКТИВНО
    CString* ps = new CString("");
    *ps="1111";


    ::PostMessage(*phObjectHandle, WM_LOG, (WPARAM)ps, (LPARAM)0);
     Sleep(2000);
    }
    delete phObjectHandle;
    
    return 0;
}


Сообщение приходит в класс рамки окна, а не в класс CThreadSdiView.

Как отправить сообщение именно в класс вида?

Код

CView* pView=((CFrameWnd*)AfxGetMainWnd())->GetActiveView()
 в самом потоке не срабатывает
PM MAIL   Вверх
Earnest
Дата 28.9.2010, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Проверь параметр, который ты передаешь в поток. Это должен быть хандл именно вью. А ты не написал в чьем OnCreate ты создаешь поток.
Кому посылаешь, тот и получит, никаких чудес.
И нафик не надо выделять память под HWND динамически. Просто передай его в lPARAM в функцию потока и все.

В потоке действительно нельзя получить MFC-окна,


--------------------
...
PM   Вверх
13dreams
Дата 28.9.2010, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 1.7.2010

Репутация: нет
Всего: нет



Разобрался!

я делал 
Код

CView* pView=((CFrameWnd*)AfxGetMainWnd())->GetActiveView()
 в OnCreate и кажется тогда ещё вид не создан, поэтому и ошибка была
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.