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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Visible - не Visible  (Прочитано 12084 раз)
0 Пользователей и 1 Гость смотрят эту тему.
luden
Участник

ru
Offline Offline

« : 28-10-2011 14:36 » 

Элементарный вопрос. Как изменить флаг WS_VISIBLE после создания компонента? Да и вообще как манипулировать параметрами после создания? Я подозреваю, что в этом как-то замешана функция SetProperty, но её параметр типа DISPID, ставит меня в тупик.
Записан
Джон
просто
Администратор

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

« Ответ #1 : 28-10-2011 15:20 » 

ShowWindow в помощь. И в любом случае, за подробностями советую обратиться к товарищу MSDN, он знает всё.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #2 : 28-10-2011 18:24 » 

Как изменить флаг WS_VISIBLE после создания компонента?

если через WinAPI , то все свойства окна можно установить/достать функцией SetWindowLong/GetWindowLong с параметром GWL_STYLE или GWL_EXSTYLE (в зависимости от группы свойства)
Записан

luden
Участник

ru
Offline Offline

« Ответ #3 : 31-10-2011 06:03 » 

Нет, как делать видмой-невидимой саму форму, это понятно. Вопрос в том, как делать видимыми-невидимыми элементы на ней, кнопочки, чекбоксы и пр. MSDN велик, но в данном случае отказывается мне помогать.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #4 : 31-10-2011 06:07 » 

luden, GetDlgItem(IDC)->...
Записан

luden
Участник

ru
Offline Offline

« Ответ #5 : 31-10-2011 07:03 » 

Огромное спасибо. Только осваиваю всю механику Студии, сам бы ещё дня два искал бы.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #6 : 31-10-2011 08:05 » 

а при чём тут студия ? Улыбаюсь
Записан

luden
Участник

ru
Offline Offline

« Ответ #7 : 31-10-2011 09:14 » 

Кхм, я чувствую подвох. Просто в Билдере есть прямой доступ к переменным. Насколько я понимаю, они хранятся отдельными значениями.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #8 : 31-10-2011 09:22 » 

и билдер ни при чём.

GetDlgItem - это функция WinAPI, которая по идентификатору контрола возвращает временный хендл (HWND) окна контрола, лежащего на диалоге (форме)

в MFC версия этой функции возвращает CWnd - этот класс является оболочкой для HWND
Записан

luden
Участник

ru
Offline Offline

« Ответ #9 : 31-10-2011 10:15 » 

Мне понятна механика. Я просто не сообразил, что раз функция работает в сфере хэндла как такового, то можно попробовать использовать не только хэндл окна.

В Билдере просто работают конструкции, типа CheckBox1.Visible = true; ну я и думал, что здесь будет нечто вроде CheckBox.Params |= WS_VISIBLE;
Записан
DneprSMV
Помогающий

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

« Ответ #10 : 31-10-2011 10:41 » 

luden,
Код:
CButton * pButtn;
pButtn = (CButton *) this->GetDlgItem(IDOK);
pButtn->ShowWindow(SW_HIDE);
?
« Последнее редактирование: 31-10-2011 10:45 от DneprSMV » Записан

"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #11 : 31-10-2011 10:49 » 

luden, в MFC можно привязать к контролам члены-переменные, смотри в редакторе - щелчок по контролу правой кнопкой, "добавить переменную"

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

Но я такое не практикую по некоторым причинам, мне неудобным.
« Последнее редактирование: 31-10-2011 16:40 от Алексей1153++ » Записан

luden
Участник

ru
Offline Offline

« Ответ #12 : 31-10-2011 12:32 » 

DneprSMV, да, я уже понял, спасибо.

Алексей1153++, ну я в общем-то через них и пытался, просто не смекнул, что ShowWindow относится не только к Window.
Записан
Джон
просто
Администратор

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

« Ответ #13 : 31-10-2011 14:28 » 

Мне понятна механика. Я просто не сообразил, что раз функция работает в сфере хэндла как такового, то можно попробовать использовать не только хэндл окна.

luden, у тебя проблема не со студией, а с пониманием работы винды. Либо ты это пропустил в своё время, либо основательно забыл. Любой контрол есть окно, способное получать сообщения. Почитай Петцольда. И неважно, в какой IDE ты создаёшь программу: Борланд, VS и тд. В любом случае это всё работает в конечном итоге ТОЛЬКО и ИСКЛЮЧИТЕЛЬНО на уровне WinAPI. Поэтому, хотя бы общее представление и понимание принципов его работы нужно иметь.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
luden
Участник

ru
Offline Offline

« Ответ #14 : 01-11-2011 06:27 » new

Либо ты это пропустил в своё время, либо основательно забыл.
Да в общем-то вообще не сталкивался.
Почитай Петцольда.
Программирование под Windows 95? Спс, прочитаю.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines