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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2011, 18:04   #1
alberio
 
Регистрация: 15.09.2011
Сообщений: 5
По умолчанию вопрос чайника о MFC

В visual studio создал MFC проект, на базе диалоговых окон.

На форме имеются кнопка с именем IDC_BUTTON1.

Вопрос - как получить к ней доступ из кода???
alberio вне форума Ответить с цитированием
Старый 15.09.2011, 18:30   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

ищи функцию, которая занимается обработкой событий этого буттона, в карте сообщений будет написано примерно так:
Код:
BEGIN_MESSAGE_MAP(MyClass,BaseClass)
   ON_COMMAND(IDC_BUTTON1,ButtonClick)
END_MESSAGE_MAP()
вот тебе надо найти этот ButtonClick
counter вне форума Ответить с цитированием
Старый 16.09.2011, 11:27   #3
alberio
 
Регистрация: 15.09.2011
Сообщений: 5
По умолчанию

Ну, это я понимаю - при двойном клике на самой кнопке, меня перебрасывает в тело этой функции.

Но как обратится к самой кнопке, чтоб, например, поменять ее свойства - высоту, ширину, цвет, и т.д.?
alberio вне форума Ответить с цитированием
Старый 16.09.2011, 13:09   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

При создании окна функцией CreateWindow возвращается handle, можно его запомнить и обращаться по нему. Если не запомнили, то можно найти окно функццией FindWindow либо GetDlgItem. Изменить размер можно SetWindowPos. Цвет - обработать сообщение WM_CTLCOLOR.
counter вне форума Ответить с цитированием
Старый 16.09.2011, 13:14   #5
alberio
 
Регистрация: 15.09.2011
Сообщений: 5
По умолчанию

Ну в эту функцию (GetDlgItem) все равно надо запихуть id искомого объекта....
Неужели все так сложно?

Я перехожу с билдера, и (как я понял) mfc является чем-то, отдаленно, но похожим... Или нет?
alberio вне форума Ответить с цитированием
Старый 16.09.2011, 13:31   #6
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
Сообщение от alberio Посмотреть сообщение
Ну в эту функцию (GetDlgItem) все равно надо запихуть id искомого объекта....
Неужели все так сложно?
Почему сложно? А как вы еще хотите определить нужный объект?

Цитата:
Сообщение от alberio Посмотреть сообщение
Я перехожу с билдера, и (как я понял) mfc является чем-то, отдаленно, но похожим... Или нет?
Я не знаю билдера.
counter вне форума Ответить с цитированием
Старый 16.09.2011, 17:08   #7
alberio
 
Регистрация: 15.09.2011
Сообщений: 5
По умолчанию

Ну в эту функцию (GetDlgItem) все равно надо запихуть id искомого объекта....
Неужели все так сложно?

Я перехожу с билдера, и (как я понял) mfc является чем-то, отдаленно, но похожим... Или нет?
alberio вне форума Ответить с цитированием
Старый 16.09.2011, 17:25   #8
alberio
 
Регистрация: 15.09.2011
Сообщений: 5
По умолчанию

Ладно, к примеру у меня есть на форме Combo Box и я хочу во время выполнения программы добавить в выпадающий список строку.

Я создаю переменную - указатель на класс Combo Box, через GetDlgItem присваиваю этой переменной какое-то значение (указатель на конкрентный Combo Box), и потом уже уже работаю. Так вроде. Но. Где узнать, как же этот класс Combo Box называется?
Может есть какая-то литературка конкретно по компонентам и работе с ними?
alberio вне форума Ответить с цитированием
Старый 17.09.2011, 00:47   #9
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Какие проблемы? Создали переменную CComboBox и уже к ней обращайтесь. GetDlgItem - это элемент Windows API. В MFC могут быть свои заморочки...
Пример:
Код:
char text[256];
CComboBox box;
box.Create(WS_CHILD|WS_VISIBLE|CBS_DROPDOWN,&rct,parent,id);

for(int i=0;i<10;i++)
{
   sprintf(text,"I'm a string number %d",i+1);
   box.InsertString(i,text);
}
counter вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос чайника dforff Общие вопросы по Java, Java SE, Kotlin 4 27.07.2011 23:37
Вопрос от чайника Катарсис Общие вопросы C/C++ 14 03.05.2010 19:32
Вопрос по excel от чайника rjavaya Microsoft Office Excel 5 08.07.2009 16:46
Вопрос чайника по фромам rh- Microsoft Office Access 1 10.11.2008 04:43