Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать кнопку Enabled 
:(
    Опции темы
Paradox
Дата 3.12.2002, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Хочу на MSVC сделать до поры до времени кнопку Enabled (потом наоборот). На билдере просто button1.enabled = false, а как на MSVC ?
И еще как можно менять размер и вид шрифта компонентов.


--------------------
---
PM MAIL WWW   Вверх
Rimas
Дата 3.12.2002, 23:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Это элементарно. Если IDC_BUTTON это ID кнопки в ресурсах то код будет выглядеть так:

GetDlgItem(IDC_BUTTON)->EnableWindow(FALSE); //или TRUE если нужно сделать ее активной
  Вверх
Данкинг
Дата 24.1.2007, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



А в чём здесь ошибка?! Знаю, что тупой вопрос - видимо, как-то процедуру к окну привязать надо? smile 

Код

void en()
{
GetDlgItem(IDC_BUTTON16)->EnableWindow(FALSE); 
}


 

Это сообщение отредактировал(а) Данкинг - 24.1.2007, 17:20


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
zkv
Дата 24.1.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Данкинг, во первых вопрос по Визуалу, во вторых ни о чем код ваш не говорит, в третьих ошибки какие? А в четвертых заведите control variable для вашей кнопки и не морочьте себе голову smile

Это сообщение отредактировал(а) zkv - 24.1.2007, 17:30
PM MAIL   Вверх
_hunter
Дата 24.1.2007, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Цитата(Данкинг @  24.1.2007,  17:18 Найти цитируемый пост)
А в чём здесь ошибка?

это у тебя спрашивать нужно... (точнее симпотомы этой ошибки)
навскидку: проверка успешности:
if (GetDlgItem(IDC_BUTTON16))
GetDlgItem(IDC_BUTTON16)->EnableWindow(FALSE); 
совсем не лишней будет...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Данкинг
Дата 24.1.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Я просто тему про кнопки нашёл...
По нажатию на кнопку я хочу вызвать процедуру, в которой данная кнопка блокируется (disabled). 
Ошибки вот такие вылезают:

Код

с:\dkg\CCCC\calcul\calculDlg.cpp(18) : error C2660: 'GetDlgItem' : function does not take 1 parameters
c:\dkg\CCCC\calcul\calculDlg.cpp(18) : error C2227: left of '->EnableWindow' must point to class/struct/union


А  переменную я завёл, но, во-первых, с ней та же фигня, а, во-вторых, не могу понять, где там в свойствах enable находится?...
 smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
zkv
Дата 24.1.2007, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(Данкинг @  24.1.2007,  17:36 Найти цитируемый пост)
А  переменную я завёл, но, во-первых, с ней та же фигня, а, во-вторых, не могу понять, где там в свойствах enable находится?...

если ваша переменная называется m_myBtn, то так:
m_myBtn.EnableWindow( FALSE );
Цитата(Данкинг @  24.1.2007,  17:36 Найти цитируемый пост)
Ошибки вот такие вылезают:

уверен что не из метода класса диалога вызываете GetDlgItem()
PM MAIL   Вверх
threef
Дата 24.1.2007, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Функция en() у вас не связана с классом окна, поэтому ей требуется 2 параметра: указатель на окно-диалог и индекс управляющего элемента(кнопки). Лучше ее сделать методом класса диалогового окна. Иначе 
Код

void en()
{
   AfxGetMainWnd()->GetDlgItem(IDC_BUTTON16)->ModifyStyle(WS_DISABLED,0); 
}


PM MAIL   Вверх
Данкинг
Дата 24.1.2007, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(threef @ 24.1.2007,  20:17)
Функция en() у вас не связана с классом окна, поэтому ей требуется 2 параметра: указатель на окно-диалог и индекс управляющего элемента(кнопки). Лучше ее сделать методом класса диалогового окна. Иначе 
Код

void en()
{
   AfxGetMainWnd()->GetDlgItem(IDC_BUTTON16)->ModifyStyle(WS_DISABLED,0); 
}


Вот нечто подобное я имел в виду, спасибо! smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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