Форма(окно) в DLL. Как ? Новый поток?

Тема в разделе "WASM.BEGINNERS", создана пользователем gershkovich, 14 мар 2006.

  1. gershkovich

    gershkovich New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2006
    Сообщения:
    97
    Как помесчать формы (окна) в ДЛЛ ?



    Я боюсь, что поток приложения вызвав функцию показа окна, в этом окне и останется для обработки WndProc.

    А основное приложение зависнет (поток же в другом окне).



    Задача состоит в том чтобы форма из ДЛЛ

    вела себя независимо от вызвавшего ее приложения (окна).



    Возможно ли такое? Наверно надо заводить новый поток ?
     
  2. ANDLL

    ANDLL New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2006
    Сообщения:
    24
    Адрес:
    Russia
    Ну так если надо совсем независимо, то да, новый поток.
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    gershkovich



    Что есть функция показа окна? Если это ShowWindow, то она всего лишь изменяет один флажок в стиле окна и кладёт в очередь пару-тройку сообщений. Непосредственно функцию WndProc она вообще не вызывает.



    Кто же вызывает WndProc? WndProc может вызвать напрямую система или какое-либо приложение через CallWindowProc, GetWindowLong и т.д. Это случается сравнительно редко. В большинстве случаев WndProc вызывается самим процессом, которому принадлежит окно, через DispatchMessage, в ходе цикла обработки сообщений.



    Поэтому, поток не зависнет, если в DLL нет цикла обработки сообщений.