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

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

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

« : 26-04-2010 16:48 » 

Не получается редактировать поле редактирования. Может есть возможность оставить стиль WS_EX_TOOLWINDOW

* voprEd.rar (36.36 Кб - загружено 787 раз.)
Записан
SAndrus
Постоялец

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

« Ответ #1 : 27-04-2010 04:47 » 

выяснил проблема не в стиле WS_EX_TOOLWINDOW а наборе стилей WS_CAPTION | WS_SYSMENU  | WS_THICKFRAME
на диалоге все работает, но там совсем другое окно. Пробую разные стили.
Спасибо за интерес
Записан
SAndrus
Постоялец

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

« Ответ #2 : 27-04-2010 04:52 » 

точнее после показа заголовка эта петрушка и начинает происходить, поле CEdit не могу редактировать
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #3 : 27-04-2010 05:36 » 

SAndrus, а про что речь то ? Расскажи хоть
Записан

SAndrus
Постоялец

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

« Ответ #4 : 27-04-2010 05:57 » 

Создаю проект в VC6 SDI делаю чтоб окно CChildView было с заголовком (стили WS_CAPTION | WS_THICKFRAME)
создаю CEdit стандартно:
   m_ed.Create(WS_VISIBLE|WS_CHILD|WS_BORDER,CRect(10,10,100,30),this,11);
   m_ed.SetWindowText("dsff");
и даже не ставя стиль WS_EX_TOOLWINDOW уже не получается редактировать CEdit
почему не могу разобраться, чет не понимаю опять Жаль
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #5 : 27-04-2010 06:39 » 

Цитата
не получается редактировать CEdit
что под этим подразумевается ? Улыбаюсь Покажи пример

и каким боком WS_EX_TOOLWINDOW относится к едиту ?
Записан

SAndrus
Постоялец

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

« Ответ #6 : 27-04-2010 06:47 » 

В первом топике приложен файл проекта набрать текст в поле не получается
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #7 : 27-04-2010 07:21 » 

поковырялся немного, дело не в едите, а в стиле вьюхи

   cs.style |= WS_OVERLAPPEDWINDOW;

после него вью не даёт поставить на себя фокус (и на едит тоже, естественно). Почему - некогда разбираться, только вечером смогу
Записан

SAndrus
Постоялец

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

« Ответ #8 : 27-04-2010 07:31 » new

Спасибо, сам догнал и пытался объяснить, не получилось. А почему тоже не пойму.
Записан
Джон
просто
Администратор

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

« Ответ #9 : 27-04-2010 07:38 » 

CEdit - это контрол, а в данном случае теребуется, насколько я понимаю, CEditView. SAndrus, пробовал?
Записан

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


« Ответ #10 : 27-04-2010 07:47 » 

Джон,так без WS_OVERLAPPEDWINDOW едит редактируется нормально. Скорее, SAndrus'у, нужен СFormView, а ресурс для ненго можно прямо в редакторе ресов сделать
Записан

Джон
просто
Администратор

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

« Ответ #11 : 27-04-2010 07:51 » 

Можно сделать и через CFormView, а для остального матчасть - иерархия классов MFC. Ага
« Последнее редактирование: 27-04-2010 08:24 от Джон » Записан

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

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

« Ответ #12 : 27-04-2010 08:15 » 

CEditView работает но он требует структуры документ вид а ее у меня нет. А как с простым полем редактирования может получится разобраться. А то это поле на контролле вводить цифры не хотелось бы усложнять. Жаль Спасибо
Записан
Джон
просто
Администратор

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

« Ответ #13 : 27-04-2010 08:23 » 

Ну добавь? Какие проблемы? Это ж просто делается. Всё-равно тебе данные надо где-то хранить.

А что с FormView?
Записан

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


« Ответ #14 : 27-04-2010 08:30 » 

SAndrus, stop brainfucking and use Wizard Улыбаюсь) Визард сделает тебе фрейм+документ+формвью на раз. Экономия времени и нервов
Записан

SAndrus
Постоялец

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

« Ответ #15 : 27-04-2010 08:33 » 

ЭУ регулятор громкости цифирки чтоб подправить надо редактировать и сюда добавить документ? Может есть варианты попроще. С форм видом разбираюсь.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #16 : 27-04-2010 08:43 » 

SAndrus, лично я CDocument тоже не пользуюсь, но раз ему надо - ну и пущай. У меня этот класс просто как визард сделал, такой и остаётся.

Если хочется "просто подправить", то сделай dialog-based. Будет предельно просто Улыбаюсь
Записан

SAndrus
Постоялец

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

« Ответ #17 : 27-04-2010 09:05 » 

Чет грустно становится, при мысли, что на простое создаваемое окно, гдеб ни было, нельзя добавить поле редактирования, а для этого надо заморачиватсья с документами. Жаль
Понятно, что визард сам все делает.
Кстати если ЭУ на диалог вешаю все четко, но основная прога уже на SDI сделана.
А вот если папу полю редактирования поставить MainFrame, то редактировать можно, ток вьюху сдвинуть надо, может можно обойти как-нить
Записан
SAndrus
Постоялец

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

« Ответ #18 : 27-04-2010 09:06 » 

еще помучаюсь с CEdit, может получится че без видов этих, вьюха это же простое окно от CWnd сделанное
Записан
Джон
просто
Администратор

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

« Ответ #19 : 27-04-2010 09:52 » 

Да, но проблема в том, что это простое окно у тебя обязательно должно быть Child от Frame, да ещё в SDI и со стилем WS_EX_TOOLWINDOW. Это ни в какие ворота не лезет. Всё в кучу собрал, всё что можно. Может тебе просто modeless диалог будет в самый раз?
Записан

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

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

« Ответ #20 : 27-04-2010 10:15 » 

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

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


« Ответ #21 : 27-04-2010 10:20 » 

SAndrus, спай++ говорит, что фокус на едит в твоём проекте просто не ставится
Записан

Джон
просто
Администратор

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

« Ответ #22 : 27-04-2010 10:43 » 

SAndrus, мы так далеко не уедем. Сформулируй конкретней задачу. Почему это должен быть именно frame со стилем WS_EX_TOOLWINDOW? Какие у него ф-ции? Какой режим работы с основной программой (модальный/немодальный)?
Записан

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

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

« Ответ #23 : 27-04-2010 11:02 » 

Программа представляет из себя окно на весь экран, разбитое на 5 частей-окон, в трех графики, в одном битмап с прорисовкой, в другом таблица, три из этих окон с графиками есть возможность закрыть, при закрытии всех таблица растягивается до низа окна, frame это только основное окно, на нем меню, тулбар, статус строка, на графиках стоят ЭУ-регуляторы на которых это поле редактирования, в принципе графики можно попробовать сделать на диалогах
Записан
SAndrus
Постоялец

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

« Ответ #24 : 27-04-2010 11:04 » 

что же тут так накручено, что показ заголовка окна блокирует поле ввода, с ума сойти
Записан
SAndrus
Постоялец

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

« Ответ #25 : 27-04-2010 11:41 » 

Спасибо,
графики на диалоге нормально получаются Улыбаюсь
Записан
Джон
просто
Администратор

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

« Ответ #26 : 27-04-2010 11:55 » 

Да уж... Задачи для SDI нет как я понимаю... Ты говоришь, что раньше это делал всё на диалогах? В принципе если это поможет, то сделать диалог с изменяемым размером и менюшкой+тулбаром не так уж и сложно.

По твоей проблеме в проекте из первого поста. Посмотри у тебя при старте ни у одного элемента нет фокуса. Почему? Фокус не ставится по той причине, что стиль WS_EX_TOOLWINDOW, вы когда-нить пробовали поставить фокус на тулбарной кнопке? Ага А это именнно WS_EX_TOOLWINDOW. Этот стиль именно для таких плавающих окошек и предназначен. Чтобы не красть фокус с основного окна. Иначе каждый раз при установки например курсива, нам пришлось бы возвращаться в окошко редактирования. И тп. Я думаю идея ясна. Поэтому я и спрашиваю, какая потребность именно в этом стиле? Просто окно тебя не устроит?

зы Причём программно фокус ставится великолепно, добавь после создания m_ed.SetFocus(); и сразу сможешь редактировать. Ага
Записан

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

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

« Ответ #27 : 27-04-2010 12:30 » 

да это то что нужно Улыбаюсь, у меня в ЭУ отслеживается щелчек мыши по месту где создается или появляется едит
Спасибо.
Записан
Джон
просто
Администратор

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

« Ответ #28 : 27-04-2010 12:34 » 

Ага

Но всё-равно, очень наворочено и ИМХО без особой на то необходимости. Лучше тебе продумать архитектуру получше. Хотя решать тебе.
Записан

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

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

« Ответ #29 : 27-04-2010 13:04 » 

Наверно первый блин, как получилось, времени уже мало, переделывать поздно Улыбаюсь
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines