Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как прятать-открывать окно-календарь CMonthCalCtrl


Автор: torero 12.4.2008, 16:33
   Я хочу сделать так, чтобы календарь CMonthCalCtrl не висел постоянно в окне "вид", а появлялся бы и исчезал при
  нажатии кнопки Button и сделал так:
        CMonthCalCtrl month;
        month.Create(WS_CHILD | WS_DISABLED | WS_BORDER,rect,this,ID_MONTH)); // стиль WS_DISABLED, при создании календарь не виден.
        нажимаю кнопку:
        month.SetWindowPos(&wndTop,10,35,170,160,SWP_SHOWWINDOW); month.SetFocus();     // календарь появился
  Но фокуса у него нет, числа не выбирает, даже при использовании month.SetFocus();
  Если же сразу создать календарь видимым, стиль WS_VISIBLE , то работает всё правильно и month.SetFocus(); не нужен.
  1. Как сделать календарь активным?
  2. Стиль WS_OVERLAPPED тоже не действует в моём случае, т.е, если на месте появления календаря уже был текст или
  контрол, то они не закрываются. Как сделать, чтобы month перекрывал их?

Автор: Andrey44 14.4.2008, 10:11
Зачем стиль WS_DISABLED - ты же сам делаешь его не активным smile 
// стиль WS_DISABLED, при создании календарь не виден------------------НЕ НАДО ПРОСТО НЕ СТАВЬ WS_VISIBLE

Автор: torero 15.4.2008, 12:10
   C этим всё получилось, спасибо.  Но, если можно, ещё один вопрос. Я разбираюсь с контролами и вот  создаю в окне "вид" ListBox и ComboBox:
   CListBox m_list1;
   m_list1.Creatе(WS_CHILD | WS_BORDER | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL,rect,this,ID_LIST1);
 Так вот вертикальный скроллинг появляется, если записываю строки и их количество больше, чем
 допускает размер окна по вертикали. А горизонтальный скроллинг не появляется, если длина строк
 больше, чем ширина окна. То же самое у меня было, когда я создавал ListBox и ComboBox в диалоговом
 окне и стили задавал в ресурсах. Что у меня неправильно?

Автор: torero 16.4.2008, 11:00
   Увидел в MSDN нужный метод и всё получилось. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)