Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WinAPI функция SendMessage 
:(
    Опции темы
V0fka
Дата 27.11.2013, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Привет!

Собственно узнал, что есть такая функция, которая может посылать сообщения другим окнам. Как в "другом" окне обработать получение этого сообщения? Только через хуки? Или не только?
PM MAIL   Вверх
jonie
Дата 28.11.2013, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



 у окна можно ovverride-днуть метод WndProc и обрабатывать там


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
V0fka
Дата 28.11.2013, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Посмотрел в проекте WPF, там у окна нету такого метода. В Win Form есть. Его (метода WndProc) или его аналога в WPF нету или я где-то не там сморю?
PM MAIL   Вверх
jonie
Дата 28.11.2013, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



для WPF испрользуются хаки: http://social.msdn.microsoft.com/Forums/vs...stion?forum=wpf

но вообще это редко всё надо особо-то


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
V0fka
Дата 4.12.2013, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



jonie, хаки, в смысле хуки (по ссылке, которую вы привели, пишут именно hooks) smile ? Или хаки, это как раз таки не хуки, а что-то другое?

Это сообщение отредактировал(а) V0fka - 4.12.2013, 22:08
PM MAIL   Вверх
jonie
Дата 5.12.2013, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



можно сделать своё окно (скрытое) и оперировать не с wpf-ным, а со своим.
Вот примерчик:
Код

    internal sealed class MessageHandler : NativeWindow, IDisposable
    {
        public const int WM_CLOSE = 0x0010;
        private bool _disposed;

        public MessageHandler(int taskId)
        {
            CreateHandle(new CreateParams { Caption = String.Format("Task executing: {0}", taskId) });
        }

        public void Run()
        {
            Application.Run();
        }

        public void Exit()
        {
            Application.Exit();
        }

        protected override void WndProc(ref Message msg)
        {
            switch (msg.Msg)
            {
                case WM_CLOSE:
                    OnClose();
                    break;
            }
            base.WndProc(ref msg);
        }

        private void OnClose()
        {
            Exit();
        }

        #region Implementation of IDisposable

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }

        private void Dispose(bool bDispose)
        {
            if (_disposed) return;
            _disposed = true;
            if (bDispose)
            {
                Exit();
            }
        }

        ~MessageHandler()
        {
            Dispose(false);
        }
        #endregion
    }




--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
V0fka
Дата 5.12.2013, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



jonie, спасибо за примерчик!
И скажи, пожалуйста, хаки и хуки - это ж мы об одном и том же говорим или это разные вещи?
PM MAIL   Вверх
jonie
Дата 6.12.2013, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



Цитата(V0fka @  5.12.2013,  23:56 Найти цитируемый пост)

И скажи, пожалуйста, хаки и хуки - это ж мы об одном и том же говорим или это разные вещи? 

нет. На самом деле WPF окно это тоже окно. Если его найти (хендл его), то можно его субклассировать уствновив через winapi новую wndproc.....


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
V0fka
Дата 7.12.2013, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(jonie @  6.12.2013,  10:45 Найти цитируемый пост)
нет. На самом деле WPF окно это тоже окно. Если его найти (хендл его), то можно его субклассировать уствновив через winapi новую wndproc.....

Честно говоря, не понял. Если это не сложно, можно примерчик кода или псевдокода?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




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


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

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