Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: добавление OnInitDialog (WM_INITDIALOG) для диалога в VisualStudio2005  (Прочитано 13911 раз)
0 Пользователей и 1 Гость смотрят эту тему.
djan
Гость
« : 23-06-2009 15:01 » 

Диалоговый проект, VS 6.0, добавляем новый далог, делаем для него класс, с этом диалоге "Events..." открываем окно со списком доступных/описаных Event'ов, добавляем WM_INITDIALOG - "Add and Edit" - в .h файле класса появляется virtual BOOL OnInitDialog();, в .с файле - реализвция функции
VS2005 - добавляем новый дилог, создаем длял него класс, слева панелька со свойствами, в ней список доступных event'ов для диалога.. а вот в списке WM_INITDIALOG нет Жаль
Как можно из редакторва ресуксов добавть обработчие WM_INITDIALOG (OnInitDialog ) в VisualStudio2005 ? Не понял
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 23-06-2009 15:11 » 

щас добавил визардом, смотрю, где что появилось:

в h
Код:
class CMyDlg : public CDialog
{
...
...
//{{AFX_MSG(CMyDlg)
virtual BOOL OnInitDialog();
//}}AFX_MSG
};

в cpp
Код:
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();

return TRUE;
}



а кроме всего, всегда можно поймать сообщение в виртуальной DefWindowProc Улыбаюсь
Записан

djan
Гость
« Ответ #2 : 23-06-2009 15:36 » 

VS2005
Добавляю новый диалог
Код:
#pragma once
// MyTestDlg dialog
class MyTestDlg : public CDialog
{
DECLARE_DYNAMIC(MyTestDlg)
public:
MyTestDlg(CWnd* pParent = NULL);   // standard constructor
virtual ~MyTestDlg();
// Dialog Data
enum { IDD = IDD_DIALOG1 };
protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
DECLARE_MESSAGE_MAP()
};


а вот то, что есть в VS6 -


вручную конечно добавть можно в .с и .h файлы, но хочется именно через визуальный редактор




« Последнее редактирование: 23-06-2009 15:42 от djan » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 23-06-2009 15:41 » 

djan, я прекрасно знаю, что есть в 6-й версии - я практически только в ней и работаю )

И то, что в 2005 визард кривущий, по сравнению с 6 - тоже (

Как насчёт поработать ручками и вставить эту пару строчек при помощи клавиатуры ? Улыбаюсь

Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #4 : 23-06-2009 21:48 » 

Блин, как всё запущено. Всё вокруг кривое, одни мы белые и пушистые. А на самом деле всё гораздо проще. WM_INITDIALOG птому и нет, что ф-я OnInitDilaog была всегда виртуальной!!! Те наследуемой от базового класса - CDialog. Ну и как должен редактор ресурсов догадаться от какого именно класса будет наследован класс, в котором этот ресурс будет использоваться?
Поэтому в 2005 это делается просто, так же как и в 2003, всего 4 клика мыша.

Идём в cpp в районе мемберных ф-ций диалога (в срр могут быть и другие классы), в качестве более простой альтернативы и избежания тупых ошибок лучше всего выбираем нужный класс в Class View. (1 клик)
Потом идём в окошко Properties, выбираем режим Overrides (2 клик). В нём выбираем OnInitDialog открываем ComboBox (3 клик), из списка выбираем <Add> OnInitDialog (4 клик). НУ и что тут корявого? Учите матчасть.


* vs2005.gif (17.65 Кб - загружено 2136 раз.)
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 24-06-2009 03:09 » 

Джон, лично мне это отабличивание свойств и прочего в визерде - это и есть корявость. Наглядности никакой, всё дооолго ищется
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #6 : 24-06-2009 07:32 » 

Лёшик, долго ищется? А в 6ке ты с самого рождения ВСЁ сразу находил?  Ага Детский лепет. То что непривычно и ново не есть коряво, только потому, что Я испытывают некий дискомфорт.

Наглядность? Это в шохе тебе показывается горстка свойств, на самом деле их гораздо больше,  хотя бы для того же диалога.



А если ты серьёзные объекты типа Grid, Chart и тд используешь? А табличное представление опций самая оптимальная вещь. Тем более что их можно либо сортировать в алфавитном порядке, либо разбивать на категории, что гораздо удобней ТАБов, ибо одновременно перед глазами можешь иметь настройки из нескольких различных групп, схлопнув остальные. С ТАБом ты же видишь только одну страничку и каждый раз приходится прыгать туда сюда.


* ss1.gif (17.37 Кб - загружено 2970 раз.)
* ss2.gif (12.08 Кб - загружено 2139 раз.)
« Последнее редактирование: 24-06-2009 07:34 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 24-06-2009 07:35 » 

А я когда в Студии эти таблички увидел, сразу мысленно поблагодарил разработчиков, что они наконец-то додумались позаимствовать такую удобную штуку из Borland-овских IDE Улыбаюсь
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #8 : 24-06-2009 07:56 » 

Вад,  это вобще-то не борландовские, а VB-шные таблицы. Ага Они там изначально были.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #9 : 24-06-2009 11:46 » 

Джон, а если эта кучка свойств - это то, что мне только и нужно на этапе визарда ? Улыбаюсь

а Grid, Chart  - никогда не пользовал, всё самописное
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines