Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2016, 22:34   #11
Cha1000000
Пользователь
 
Регистрация: 08.05.2014
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Скорее всего в WndProc надо родительскую функцию WndProc вызвать в начале.
Возможно... Там кстати в шарповском варианте в начале функции была строка base.WndProc(ref m); Но, по скольку я синтаксис C# толком не знаю, а чисто на основе знаний синтаксиса С и С++ могу лишь интуитивно догадываться (где это возможно) как провести аналогию, но смысл этой строки я не понял. А точнее, что за служебное слово base и для каких целей оно используется???
В каком-то примере на C#, где тоже переписывали функцию WndProc была такая же строка, но только в она стояла в самом конце функции, и я интуитивно предположил тогда, что это аналогия return'а. Но в данном случае, если считать, что base это return, то если вызвать в самом начале функции return WndProc(m); оно ж ведь вернет родную функцию и выйдет, не пойдет дальше по телу override'овской функции...
Прошу, поправьте меня, если я где-то не правильно рассуждаю.
Cha1000000 вне форума Ответить с цитированием
Старый 07.04.2016, 22:40   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что return если void?

base это обращение к родительскому классу. В С++ вроде просто по имени класса
Код:
ParentClassName::func(arg)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 07.04.2016, 23:26   #13
Cha1000000
Пользователь
 
Регистрация: 08.05.2014
Сообщений: 17
По умолчанию

"Ураааааа!!!! Зарабоооталооооо!!!" (цитата из м/ф "Каникулы в Простоквашено")
Действительно, переписал вот так:
Код:
protected:
		virtual void WndProc(Message % m) override
		{
			System::Windows::Forms::Form::WndProc(m);
			if (m.Msg == WM_DEVICECHANGE)
				TreeUpdate();  // Обновление дерева устройств.
		}
И всё заработало! Огромное спасибо, Алекс! Я уже ровно неделю долбаюсь над этой обработкой. Наконец-то победа!
Cha1000000 вне форума Ответить с цитированием
Старый 08.04.2016, 00:52   #14
Cha1000000
Пользователь
 
Регистрация: 08.05.2014
Сообщений: 17
По умолчанию

Кстати! Позже проверил и выяснилось, что даже функция регистрации приложения в системе и класс, в котором она была описана, да и тот фильтр сообщений оказались не нужны вообще. Удалил их полностью, оставив только функцию WndProc и всё работает как нужно :-)
Cha1000000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блок редактирования первой формы через вторую- C++/CLI Windows Forms kirill1507 Windows Forms 9 05.03.2016 14:31
DirectInput и джойстик (C++/CLI, Windows Forms) Vistaern Win Api 1 21.02.2013 06:48
вывод сообщения в windows forms василий- Windows Forms 0 23.10.2012 11:46
Проблема с выделением памяти в глобальной области windows forms(C++\CLI) DartLenin Помощь студентам 2 24.01.2012 20:58
Проблема с отображением русского языка (Windows Forms C++ CLI) Alex TGM Помощь студентам 0 17.08.2010 11:13