143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
1

Создание директивы на ходу

04.03.2013, 18:49. Показов 709. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна директива #define которая могла бы создаться по ходу исполнения программы, а именно идентификатор для API окошек типа кнопок и т.п.

Задача я так понимаю не стандартная, т.к. обычно директивы объявляются в глобальных переменных.
Надоумило - то что в принципе можно через динамический массив создавать глобальные переменные, просто увеличивая массив и добавляя новое значение...
Но по мимо значения нужен тип HWND, ну его создать я думаю справлюсь, т.к. это всего лишь тип... и его можно на крайний случай в динамическую структуру пихнуть, а вот с директивой-идентификатором не очень понятно... (надеюсь я правильно написал и понял : "директива-идентификатор" ^ ^)

Моя задача вообще выполнима? В теле программы, через структуры, или через файл текстовый... Любым способом =)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2013, 18:49
Ответы с готовыми решениями:

Создание глобальной переменной по ходу работы программы
И так, мне нужно создать глобальную переменную в ходе исполнения программы. На самом деле всё чуть...

Директивы препроцессора Составить программу, использующую директивы препроцессора
1) Задать константы M1,M2,...,M5 и вычислить M1+ 2M2 + 3M3 + 4M4 + 5M5 2) С помощью директив #if,...

Создание объектов по ходу программы
Хаи гайсы. Давно мыслил над тем как создаются объекты прямо по ходу программы. Так вот столкнулся с...

Создание Angular директивы с несколькими HTML фрагментами
Доброго времени суток. Мне нужно создать директиву, в которой есть кнопка и модальное окно. Как...

6
Модератор
Эксперт по электронике
8808 / 6591 / 894
Регистрация: 14.02.2011
Сообщений: 23,174
04.03.2013, 21:43 2
Цитата Сообщение от Izual Посмотреть сообщение
Нужна директива #define которая могла бы создаться по ходу исполнения программы,
Цитата Сообщение от Izual Посмотреть сообщение
Моя задача вообще выполнима?
нет
#define директива препроцессора т.е на этапе компиляции её уже не будет
тем более при выполнении
Цитата Сообщение от Izual Посмотреть сообщение
директивой-идентификатором не очень понятно...
это просто число

короче что надо?
создать 100500 окошек?
0
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
04.03.2013, 22:42  [ТС] 3
Цитата Сообщение от ValeryS Посмотреть сообщение
нет
#define директива препроцессора т.е на этапе компиляции её уже не будет
тем более при выполнении

это просто число

короче что надо?
создать 100500 окошек?
да типа 100500 окошек =) Конешно можно сразу объявить 100500 define'ов, но это как то ugly =( И не stylsh... Хочеться реально сделать чтоб динамически получилось, ну если нельзя, то как можно ? =)

Кстати а массив define'ов можно сделать ? =)
0
Модератор
Эксперт по электронике
8808 / 6591 / 894
Регистрация: 14.02.2011
Сообщений: 23,174
04.03.2013, 22:56 4
ну на тебе 20 кнопок на mfc
C++
1
2
3
4
CButton but[20];
...................................
for(int i=0;i<20;i++)
   but[i].Create(........,ID_BUT1+i);
обработчик
C++
1
2
3
4
5
6
7
ON_COMMAND_RANGE(ID_BUT1+0,ID_BUT1+20,OnBut)
........................................................
void CMyClass::OnBut(UINT id)
{
    
 Selected=id-ID_BUT1;// здесь узнаешь какая кнопка нажата
}
Добавлено через 1 минуту
Цитата Сообщение от Izual Посмотреть сообщение
Кстати а массив define'ов можно сделать ? =)
нет
define это макрос в реальном коде он заменится на цифру и как ты себе представляешь массив цифр
1
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
04.03.2013, 22:59  [ТС] 5
Цитата Сообщение от ValeryS Посмотреть сообщение
ну на тебе 20 кнопок на mfc
C++
1
2
3
4
CButton but[20];
...................................
for(int i=0;i<20;i++)
   but[i].Create(........,ID_BUT1+i);
обработчик
C++
1
2
3
4
5
6
7
ON_COMMAND_RANGE(ID_BUT1+0,ID_BUT1+20,OnBut)
........................................................
void CMyClass::OnBut(UINT id)
{
    
 Selected=id-ID_BUT1;// здесь узнаешь какая кнопка нажата
}
Добавлено через 1 минуту

нет
define это макрос в реальном коде он заменится на цифру и как ты себе представляешь массив цифр
А можно APi примерно ? MFC - не дружу, классы для меня не доходят...
Ну прально, на WinApi пишется же " #define ID_BUTTON123 4354 " (типа 123 кнопка с идентификатором 4354)... Или я что то не понял? - Можно по другому объявлять идентификаторы кнопок?...

Да и ещё, по вашему представленному коду, всё это объявляется где? (или где можно вообще объявить?)
0
Модератор
Эксперт по электронике
8808 / 6591 / 894
Регистрация: 14.02.2011
Сообщений: 23,174
04.03.2013, 23:13 6
Цитата Сообщение от Izual Посмотреть сообщение
Ну прально, на WinApi пишется же " #define ID_BUTTON123 4354 " (типа 123 кнопка с идентификатором 4354)...
типа кнопка с номером 4354 а ID_BUTTON123 это чтобы тебе понятно было система(да и программа) про эту ID_BUTTON123 ничего не знает она работает с числом 4354
Цитата Сообщение от Izual Посмотреть сообщение
Можно по другому объявлять идентификаторы кнопок?...
можешь писать прямо цифры, если потом не заплюхаешься
0
Неэпический
17815 / 10586 / 2044
Регистрация: 27.09.2012
Сообщений: 26,626
Записей в блоге: 1
05.03.2013, 05:40 7
А Вы понимаете суть работы препроцессора?

Можете сделать массив из идентификаторов, а при WM_COMMAND проверять в цикле на совпадение.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2013, 05:40
Помогаю со студенческими работами здесь

Компиляция на ходу
Здравствуйте, возник такой вопрос. Можно ли на ходу из программы скомпилировать новую, записав...

цикл...и по ходу бесконечный...
У меня такая проблема дали курсовую 3 задания сделал а вот одно не могу никак сделать...я даже не...

Прерывание процедуры по ходу её выполнения
Здравствуйте, у меня есть программа...И я хочу сделать так чтобы по нажатии на крестик на форме у...

Работа трансформатора на холостом ходу
Здравствуйте! Срочно нужна ваша помощь!!! Мне нужно объяснить, как получается коэффициент...

Синий экран по-ходу переустановки Хп
Ребят,помогите разобраться.Пришел к знакомому перестанавливать виндовс,вроде сначала все шло...

CAN фильтр, смена "на ходу" возможна?
При старте задаю фильтр &quot;принимать для всех CAN ID&quot;, вот так: CAN_FilterConfTypeDef...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru