2014-12-30 8 views
0

У меня есть окно, которое работает в отдельной теме. Мне нужно получить дескриптор этого окна в другом потоке.получить ручку окна

Я не могу использовать :: FindWindow API, потому что имя окна изменится, так как мое приложение может работать на других языках. Кроме того, у меня нет доступа к строке ресурсов, используемой для имени окна.

Я не могу использовать :: GetActiveWindow также, поскольку идентификатор вызывающего потока и идентификатор потока активного окна различны.

Пожалуйста, предложите какое-либо решение.

+0

['GetGUIThreadInfo'] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms633506 (v = vs.85) .aspx) представляется разумным выбором, если у вас есть id вашей перспективы. – WhozCraig

+0

Зачем вам искать его, если вы создали его сами. [дескриптор окна в mfc] (http://stackoverflow.com/questions/3255207/window-handle-in-mfc). – qwr

+0

Окно не создано мной. Он принадлежит к другому окну. Мне нужна его ручка в моем ocx. Оба ocx работают под одним и тем же процессом. Как получить идентификатор потока окна. – user2338040

ответ

0

Нет необходимости передавать имя окна функции FindWindow. Вы можете передать NULL для имени окна и найти окно, используя только параметр lpClassName.

MFC обычно назначает имена классов окон автоматически, но вы можете управлять именем класса окна, зарегистрировав уникальное имя с AfxRegisterClass и создав окно с этим зарегистрированным именем класса.

Смежные вопросы