• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

вопрос по Mfc документ - вид

  • Автор темы Guest_Paul_*
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_Paul_*

народ, может кто подскажет, как создать view определенного размера в MFC -шной модели документ-вид. у меня вид получается только на весь MainFrame... а мне надо выводить нескорлько видов для одного документа... MDI использовать не хочу пока... с разделением view на несколько с помощью Splitter тож не подходит...
 
G

grigsoft

На мой взгляд, в sdi такого не получится - там нет "подложки". Определись что ты хочешь получить, сделай пару рисунков, для себя хотя бы. Тут либо сплиттер, либо просто внутри окна view самому-себе выделить область и оформить. Можно еще через NcCalcSize выделить часть фрейма и разместить там окно.
 
G

Guest_Paul_*

спасибо за ответ... все таки решил делать с MDI... удобнее...
 
C

Cisco

Подскажите пожалуйста - как с помощью MFC можно сделать, что-то вроде основного меню mail.ru - т.е. это дополняемый список,строк :
слева можно поставить галочку, а справа от нее текстовая строка.
 
C

Cisco

Для того, чтобы сделать реакцию на клик по строке, я переопределяю OnLButtonDown - в которой просто проверяю попадает курсор в выделенный rectangle. Вопрос заключается, чтобы без наворотов сделать реакцию на двойной клик?
Заранее благодарен.
 
G

Guest

Я не совсем понял. У меня есть своя обработка нажатия на клавишу - OnLButtonDown, внутри этого обработчика хотелось бы выполнять определенные действия в случае одного клика на одни строки (с этим нет вопросов), а на другие строки в случае двойного клика. С чем мне сравнивать NM_DBLCLK?
 
G

grigsoft

Вопрос в том, на каком уровне ты реагируешь на клики - в самом списке или в диалоге, на котором список лежит? Если в самом списке, то можно по аналогии с OnLButtonDown использовать OnLButtonDblClk. Если в диалоге, то проще ловить WM_NOTIFY с кодами NM_CLICK, NM_DBLCLK.
Походу, мне не совсем понятно зачем ты сравниваешь там координаты - после клика в списке кликнутый элемент всегда текущий, его можно получить через GetCurSel
 
G

Guest

Но CheckBox (галочка) также относится к элементу списка, а мне надо различать галочку и саму строку. А реагировать мне впринципе неважно на каком уровне. Как лучше?
 
G

Guest

Спасибо за Вашу помощь grigsoft.
Я пересмотрел меню, мне впринципе достаточно сделать обработчик только двойного клика OnLButtonDblClk, только не могу понять : прога собирается с таким обработчиком но, почему-то в этот обработчик не попадает, сколько раз не нажимай.
 
G

Guest

Спасибо огромное, задача решена - БЛАГОДАРЯ ВАМ!
 
G

grigsoft

Не понял я что-то какую ты там задачу решаешь - CCheckListBox сам по себе переключает состояние чекбоксов и по клику, и по пробелу :D
 
G

Guest

Да нет), я как раз хотел сделать реакцию по нажатию DoubleClick на область строки без галочки.
А как посоветуете изменить размеры галочки добавить пиктограмму после галочки? Это лучше делать в DrawItem?
 
G

grigsoft

Ну тут вариантов нет - DrawItem + MeasureItem\SetItemHeight
 
G

Guest

У меня есть расширение класса CDialog в этом расширении я переопределяю функцию OnInitDialog(),
где прописываю:

*********
ToolBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_BORDER_BOTTOM);
ToolBar.LoadToolBar(IDR_MAINFRAME);
*********
все собирается без ошибок, но toolbar нет!
 
G

grigsoft

Вопрос о тулбаре в диалоге широко освещен в интернете, на codeproject.com (основной ресурс по gui компонентам) и даже в мфс-примерах.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!