Заблокирован
|
||||||
1 | ||||||
Запретить окну отображаться на панели11.04.2014, 19:09. Показов 2123. Ответов 33
Метки нет (Все метки)
Сейчас делаю абгрейд своих ранее созданных компонентов
подробнее здесь остановился вот на чем ... когда вызываеться мой ToolTipText от правой кнопки мыши то на пенели задач предательски отображаеться надпись Text1 как запретить отображаться на панели и при этом контролу Text1 оставаться самым верхним окном ? (тоесть не принадлежать никому) вот часть кода из UserControl ... может кто что подскажет ?
Tw.x это твип если что ... Добавлено через 1 минуту h.x это хендл кнопки или указывающего h.y это хендл изменившегося окна
0
|
11.04.2014, 19:09 | |
Ответы с готовыми решениями:
33
Запретить отображение формы на панели задач Запретить окну уменьшаться меньше содержимого Как запретить окну ручное перемещение двух сторон? Как запретить форме отображаться в диалоге переключения между окнами |
11.04.2014, 19:13 | 2 | |||||
Сообщение было отмечено Антихакер32 как решение
Решение
Пробуй так
1
|
Заблокирован
|
||||||
11.04.2014, 20:05 [ТС] | 4 | |||||
большое спасибо, все работает как надо
правда пришлось найти эти константы GWL_... у себя в мененжере API и изменить эту Const GWL_EXSTYLE = (-20) на эту Const GWL_USERDATA = (-21) иначе бы рамка у текстового контрола не отображалась вот как я прикрутил ...
А у меня !
0
|
Заблокирован
|
|
11.04.2014, 20:24 [ТС] | 6 |
Забыл сказать еще и МНОГОСТРОЧНОСТЬ !
Добавлено через 8 минут Кстате ты помоему чтото такое уже делал ? не так ли ? ... Добавлено через 2 минуты хочеш сказать стандартный тултип использовал ? скинь ссыль как ты это сделал ?
0
|
Модератор
|
||||||
11.04.2014, 20:28 | 7 | |||||
Ты вообще неправильно сделал .
Стиль у окон меняется так:
SetParent должен быть парный вызов, иначе окно не уничтожится. Проверять в цикле координаты - это вообще блэк-кодинг, так вообще нельзя делать, особенно добавляя всякие Sleep'ы и другую фигню. Вот пример правильного тултипа (tooltips_class32), который будет поддерживать стили и отображаться также как и другие. У меня в блоге есть
1
|
Заблокирован
|
|
11.04.2014, 20:43 [ТС] | 8 |
Спасибо сейчас попробую
сначало исправить с учетом этой рекомендации: и почему блэк-кодинг что неправильно ? всё-же работает и минимум кода в котором я разобрался как и что должно работать ... Добавлено через 4 минуты а это что означает ..что значит парный ? Добавлено через 3 минуты В твоей ссылке меня единственное что прикололо это подсказки в виде воздушных шариков ))
0
|
Модератор
|
|
11.04.2014, 21:02 | 9 |
Для этого в системе существуют специальные сообщения, которые намного эффективнее. WindowFromPoint - вызывается в цикле, перечисляются все окна и проверяются координаты. В итоге ненужные затраты временных ресурсов. Никакие сообщения в этот момент не обрабатываются, все стоит. Никакие события не будут обрабатываться, будь то таймеры, клики и т.п. В Windows есть MAPI нужно использовать его, все другие способ неверны и ошибочны.
Значит нужно делать что-то типа SetParent Text.hwnd, Usercontrol.hwnd Это плохо, что только это.
0
|
Заблокирован
|
||||||
11.04.2014, 21:03 [ТС] | 11 | |||||
Вобщем сейчас действительно все нормально заработало ...
0
|
Модератор
|
|
11.04.2014, 21:04 | 12 |
Почему? Можно сделать такое.
https://www.cyberforum.ru/blog... g1850.html
0
|
Заблокирован
|
|
11.04.2014, 21:14 [ТС] | 13 |
ну ты же у себя сейчас это как-то сделал ?
Добавлено через 9 минут ну вот.. километровый код только ради того чтоб всё работало правильно .. наверняка это работает в отдельном модуле .. а хотелось бы чтоб код был в 10 строчек и находился в модуле UserControl
0
|
Модератор
|
|
11.04.2014, 21:16 | 14 |
Этот код вообще не имеет отношения к твоей задаче. Я тебе дал ссылку, там никаких километровых кодов нет. Тот код предназначался для изменения стандартного тултипа.
0
|
Заблокирован
|
|
11.04.2014, 21:24 [ТС] | 15 |
Да я благодарен тебе, и не собираюсь спорить
просто на одну чашу весов ставится маленький тултип который я реализовал в 10 строк а на другую твой вариант что это должен быть измененный тултип вот и все ...
0
|
11.04.2014, 21:24 | 16 |
У меня XP. Да и я только запустил готовую прогу, которую писал мой дядька давно уже.
В более современных версиях MS отказалась от идеи использовать MS Agent, а такие диалоги с меню, картинками, текстовым вводом, любыми кнопками и вообще любым внешним видом, цветом и т.п. можно делать было на их основе очень просто. Сейчас наверно тоже можно смастерить, но какие трудозатраты?
0
|
Заблокирован
|
|
11.04.2014, 21:44 [ТС] | 17 |
да ! у меня кстати тоже XP Брат ! Мы с тобой усталели
Добавлено через 11 минут у меня всё прекрасно обрабатывается, DoEvents же там стоит ... Добавлено через 3 минуты а если вместо нуля поставить чтото другое то он будет ограничен координатами оцовского окна
0
|
Модератор
|
||||||
11.04.2014, 22:12 | 18 | |||||
Сообщение было отмечено Антихакер32 как решение
Решение
DoEvents не заметил. Это ничего не меняет, сообщения в очередь могут с очень большой скоростью поступать и их надо все обрабатывать, DoEvents - обработает только очередное, если в очереди будет много сообщений, то перерисовка уйдет на задний план и не будет обрабатываться. А если у кого-то таймер стоит например на 64 мс, или например taras atavin вообще собирался с частотой 1кГц пускать? Поверь мне - это неправильное, некрасивое решение. Делай правильно, я всегда рад помочь, если что спрашивай. Я тебе говорю про парный вызов, чтобы ты все на место убирал по завершении.
1
|
Заблокирован
|
|||||||||||
11.04.2014, 23:35 [ТС] | 19 | ||||||||||
да .. как же я не подумал что моими компонентами может воспользоваться taras atavin
со своим супер-таймером ))) еще раз спасибо буду прикручивать, пошол я код набирать ... Добавлено через 38 минут А как-же сделать чтоб hTool не вызывался просто так, а только по нажатию ПКМ ? Добавлено через 4 минуты
кстате может мне вообще пункт меню вызывать ? в неактивном режиме, эфект будет тот-же а многострочность можно обеспечить пунктами Добавлено через 9 минут чтото вроде ...
0
|
Модератор
|
|
11.04.2014, 23:49 | 20 |
TTM_TRACKPOSITION, TTM_TRACKACTIVATE.
Смысл тултипа который вызывается правой кнопкой? Это контекстное меню получается. Либо WS_POPUPWINDOW окно, тогда полная аналогия с меню.
1
|
11.04.2014, 23:49 | |
11.04.2014, 23:49 | |
Помогаю со студенческими работами здесь
20
На второй панели всегда должны отображаться текущие размеры формы Как запретить сворачиваться окну при нажатии кнопки "свернуть все окна"? Запретить группировку окон в панели задач Запретить изменение размера панели (JavaFX) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |