VC++ как сделать недоступными элементы диалога?
EnableWindow(0)
то есть напрямую IDC_RADIO_BUTTON.EnableWindow(0);?
IDC_RADIO_BUTTON - вообще-то число
GetDlgItem(IDC_RADIO_BUTTON) выдаст тебе указатель на кнопку
GetDlgItem(IDC_RADIO_BUTTON) выдаст тебе указатель на кнопку
// это кнопарь в объявлении класса
CButton *bplay;
// это в ::InitDialog
bplay = (CButton *)GetDlgItem(IDC_PLAY);
// а это гасим кнопку, где хотим
this->bplay->EnableWindow(FALSE);
а какая функция отвечает за текущее состояние окна? то есть oninitdialog начинает все и расставляет, допустим, значения. а какой функцией проверяется текущее состояние значений?
Можно проще:
HWND hw = GetDlgItem(IDC_RADIO_BUTTON);
EnableWindow(hw, 0);
HWND hw = GetDlgItem(IDC_RADIO_BUTTON);
EnableWindow(hw, 0);
this->bplay->IsWindowEnabled;
Самый простой (с кучей недостатков, но, обычно, удовлетворительный) способ заключается в UpdateData
В программе, чуть большей, чем самый примитивный диалог, все же стоит, по моему скромному мнению, ввести переменные-члены класса.
спасибо за обстоятельный ответ.
А в чем великий сакральный смысл "this->" ?
1) В том, что так удобнее писать, ибо в VC есть автодополнение.
2) Хороший тон обращаться к членам/медодам класса через this->, т.к. это в дальнейшем облегчает читабельность кода и отличает члены/методы от локальных переменных и глобальных функций.
2) Хороший тон обращаться к членам/медодам класса через this->, т.к. это в дальнейшем облегчает читабельность кода и отличает члены/методы от локальных переменных и глобальных функций.
Автодополнение, как ты выразился, прекрасно работает и без this. А хорошим тоном является не обращение к членам класса через this, а использование префикса "m_" в именах.
Автодополнение работает без this-> частично. Набрав this->, мы получаем выпадающий список членов/методов класса, что позволяет нам не лезть в определение, чтобы уточнить имя. Что же касается m_, то помимо того, что нам предлагает Билл Гейтс через GUI VC, есть еще и стандарты, в которых про m_ ничего не сказано.
в стандарте про выпадающие списочки тоже ничего не сказано 

Смейся сколько угодно. Здесь в качестве замены this настоятельно рекомендовали использовать m_, не в пример которому this (надеюсь, ты не будешь с этим спорить) - вполне стандартная штука.
>Здесь в качестве замены this настоятельно рекомендовали использовать m_,
точно также как ты рекомендовал использовать "this->".
имхо: бесполезно спорить что лучше. я вообще не юзаю ни this-> ни m_ и проч без надобности, нормально помню весь код который настрочил или названия функций и переменных mfc и winapi, которые юзаю
точно также как ты рекомендовал использовать "this->".
имхо: бесполезно спорить что лучше. я вообще не юзаю ни this-> ни m_ и проч без надобности, нормально помню весь код который настрочил или названия функций и переменных mfc и winapi, которые юзаю
> есть еще и стандарты, в которых про m_ ничего не сказано
сказано
сказано
Весьма рад за тебя, ибо тебе повезло с памятью.
А тебе часто приходится возвращаться к давно написанным программам, копаться в чужом коде?
А тебе часто приходится возвращаться к давно написанным программам, копаться в чужом коде?Ссылку дай почитать, хочу стать умным.
к счастью нет 

Ссылка на стандарт C++ есть в FAQ.
Там написано про то, какими должны быть идентификаторы-названия членов класса.
Идентификаторы, начинающиеся с m_, вполне стандартны.
Там написано про то, какими должны быть идентификаторы-названия членов класса.
Идентификаторы, начинающиеся с m_, вполне стандартны.
+1
не писать m_ - имхо дурной тон
не писать m_ - имхо дурной тон
От нотации зависит.
Ессно. Я привык к венгерской. Для меня было некоторым маленьким шоком, когда я перешел на Яву и узнал, что там так не принято.
> Идентификаторы, начинающиеся с m_, вполне стандартны.
В стандарте, прямо так и написано, что если члены классов называть с m_, то это будет стандартное решение, а все остальные названия - нет?
В стандарте, прямо так и написано, что если члены классов называть с m_, то это будет стандартное решение, а все остальные названия - нет?
С чего ты взял, что стандартное решение должно быть единственным?
> С чего ты взял, что стандартное решение должно быть единственным?
1. предположил
2. но меня больше интересует ответ на первую половину вопроса.
1. предположил
2. но меня больше интересует ответ на первую половину вопроса.
Ну я думаю, что нет. 

2. Насколько я слышал, в Майкрософте - да, это внутренний стандарт.
а теперь тот же самый вопрос, но только баттоны сделать невидимыми. как?
> 2. Насколько я слышал, в Майкрософте - да, это внутренний стандарт.
Венгерская нотация - уже лет 5 даже в Микрософте, как не стандарт.
Венгерская нотация - уже лет 5 даже в Микрософте, как не стандарт.
Венгерская нотация - уже лет 5 даже в Микрософте, как не стандарт.И когда на С++ под вин апи пишут?
Ботай МСДН
BOOL ShowWindow(HWND hWnd, int nCmdShow);
BOOL ShowWindow(HWND hWnd, int nCmdShow);
Вчера писал на плюсах, использовал шарповую стандртную нотацию, прекрасно получилось.
> И когда на С++ под вин апи пишут?
AFAIK, microsoft сейчас на C++ относительно мало пишет.
AFAIK, microsoft сейчас на C++ относительно мало пишет.
спасибо за ответ! рад бы поботать, да нету! ни места на винте, ни самих дисков. и живу не общаге
Не верю. Очень мало проектов еще на дотНет. Только последние. А так у них порядки в разных группах свои. В программировании на С++ не так уж и много изменилось, зачем менять нотацию. На Шарпе, понятно, своя нотация. Бред Адамс из CLR группы даже постил у себя в блоге.
Ну-ну.
Это на плюсах всю жизнь проектов было очень мало.
Вначале их делал ВБ, потом добавилась жава, а счаз по ощущениям шарп оторвал почти половину всего, если не больше.
Я просто как бы смотрю на прекрасный блог The Daily WTF, так вот, там шарпа столько же, сколько ВБ (по ощущениям). И это при том, что полноценный WTF на шарпе не очень-то и легко сгенерить =)
Это на плюсах всю жизнь проектов было очень мало.
Вначале их делал ВБ, потом добавилась жава, а счаз по ощущениям шарп оторвал почти половину всего, если не больше.
Я просто как бы смотрю на прекрасный блог The Daily WTF, так вот, там шарпа столько же, сколько ВБ (по ощущениям). И это при том, что полноценный WTF на шарпе не очень-то и легко сгенерить =)
Оставить комментарий
stm8680568
есть 3 элемента - галочка и 2 радиобаттона. нужно, чтобы при установке галочки баттоны делались недоступными. как?