|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Я в VB6 использовал PictureBox и Frame. При этом преимущественно PictureBox - он в VB6 отвечает следующим требованиям: 1) Возможность "простого" размещения картинки средствами среды PictureBox1.Picture = "C:\test.bmp" 2) Могу рисовать поверх PictureBox используя понятие hdc . 3) Роль контейнера, т.е. могу натыкать туда Options, либо просто групировать туда контролы: по смыслу, для удобства, и т.д. Либо чтобы одновременно скрывать/показывать группы контролов. 4) Могу сабклассить PictureBox, например для использования: Показательный пример - обработка WM_CTLCOLORBTN, WM_CTLCOLOREDIT, WM_CTLCOLORLISTBOX -когда надо обеспечить "прозрачность" контролов расположенных поверх рисунка. Ну или для любых других целей. Я так понял что местный PictureBox (.Net) категорически не удовлетворяет ни одному из требований кроме первого. У него даже понятие handle (HWND) отсутствует. Что использовать? Panel? Как там с "простым размещением рисунка"? Теперь о Frame. В VB6 я Frame недолюбливал и использовал только ради рамки с текстом. Да и то. Приходилось обычно вкладывать PictureBox внутрь Frame, т.к. при применении манифест-стилей были глюки с прорисовкой контролов, если вкладывать их внутрь Frame напрямую. Я читал что Frame=Panel / GroupBox (в завис. от того нужна ли граница с текстом). Эквивалентна ли замена с т. зр. сабклассинга и так далее, а не с точки зрения подхода школьника "влепить туда картинку и хватит"? Если мой ход мыслей насчет Frame (VB6)->GroupBox(.NET) Picturebox(VB6) -> Panel (.NET) верен, то насколько прочие "интересные" контейнеры скажем TableLayoutPanel, SplitContainer отвечают требованиям ПОЛНОЦЕННОСТИ. Еще. Про GDI/GDI+ То что ваша Graphics это один в один обертка над GDI+, это я понял. Очень бы хотелось думать что обертка полная и безглючная, потому что мне в дальнейшем понадобится отображение многостраничных TIFF, различные фильтры (например компрессии этих TIFF, сохранение в разных форматах и т.д.) , изменение разрешения, к-ва цветов и т.д.. Но я не вижу например простой обертки над GDI, кот. честно говоря нужно значительно чаще: К примеру мне нужно установить "серый" стиль пункта меню на классике (когда он Enabled=false) API-код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
По ".Net варианту" приходится городить такой огород: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
При этом с ф-цией Код: vbnet 1. 2.
я не справился. По идее есть свойство DrawItemEventArgs.ForeColor - свойство но оно ReadOnly В нормальной жизни такие штуки делаются через GDI а не GDI+. Через GDI+ я могу нарисовать итем включая текст самостоятельно, что все стрипы похоже и делают, но заниматься херней таким рисованием НЕ ХОЧУ и НЕ БУДУ по крайней мере для случаев когда подобные издержки не требуются, как в приведенном примере. Т.е. как быть с GDI (которое не плюс)? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 05:02 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий772) Могу рисовать поверх PictureBox используя понятие hdc . У него даже понятие handle (HWND) отсутствует. Вы принципиально не читаете мануалы? Код: c# 1. 2.
Дмитрий773) Роль контейнера, т.е. могу натыкать туда Options, либо просто групировать туда контролы: по смыслу, для удобства, и т.д. Либо чтобы одновременно скрывать/показывать группы контролов. Label тоже не может контейнером, но почему-то вас это напрягает. Поместите пикчебокс внутри панели. Панель будет контейнером и для него, и для любых других контролов. Дмитрий77Panel? Как там с "простым размещением рисунка"? Для простого размещения используйте backgroundImage. Если очень хочется, можно рисовать и по панели. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Дмитрий77Теперь о Frame. Просто примите как данность, что VB6 и VB.NET - разные языки с похожим синтаксисом и ищите как сделать на Net, а не как использовать прежние подходы. Дмитрий77К примеру мне нужно установить "серый" стиль пункта меню на классике (когда он Enabled=false) А он автоматом не устанавливается разве? Или я не понял, что вам надо? Зачем городить рисование, если делается через свойства? Вот, например, установка красного цвета фона для пункта меню. Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 09:37 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77, использовать GDI(+) тогда , когда есть Direct2D некузяво нам даже не нужен WPF для этого. один раз пишем что то типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
а теперь просто используем. Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 12:33 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
никаких бекбуферов и великолепная скорость. одни только плюсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 12:35 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Cat2Дмитрий772) Могу рисовать поверх PictureBox используя понятие hdc . У него даже понятие handle (HWND) отсутствует. Вы принципиально не читаете мануалы? Код: c# 1.
Да теперь вижу что handle (HWND) есть Почму-то вчера набрал Picturebox1. и не увидел .handle Оч.удивился... (про-гля-дел!!!) А что, для того чтоб увидеть .handle тоже надо читать мануалы? Но контейнером он действительно быть не может, буду в этих случаях использовать Panel. Cat2Просто примите как данность, что VB6 и VB.NET - разные языки с похожим синтаксисом и ищите как сделать на Net Именно об этом и идет речь. Дмитрий77то насколько прочие "интересные" контейнеры скажем TableLayoutPanel, SplitContainer отвечают требованиям ПОЛНОЦЕННОСТИ Похоже все нормально. Они могут быть "родителями" и их можно сабклассить при необходимости. Cat2Дмитрий77К примеру мне нужно установить "серый" стиль пункта меню на классике (когда он Enabled=false) А он автоматом не устанавливается разве? Или я не понял, что вам надо? Зачем городить рисование, если делается через свойства? Вот, например, установка красного цвета фона для пункта меню. Код: c# 1.
Не-а, не понял, здесь смотри: Как заменить "вдавленный стиль" на "серый" (в меню) 1) Речь не идет о "Strip", речь идет о нормальном меню (в .Net соответствует контролам MainMenu и ContextMenu -которые без слова СТРИП). 2) (Автоматом устанавливается только при включенных XP/Виста теме) Нет, автоматом НА КЛАССИЧЕСКОМ СТИЛЕ СИСТЕМЫ не устанавливается. Автоматом устанавливается Engraved (гравировка). "Engraved (гравировка)" и "серый" -это не одно и то же. 3) Вот тебе решение этого вопроса с объяснениями (и другого быть не может) 14350180 4) Вот тебе решение того же вопроса на .Net (в моем первом посте): Дмитрий77По ".Net варианту" приходится городить такой огород: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
5) А вот ОТСЮДА следует вопрос про GDI (которое НЕ ПЛЮС): Дмитрий77При этом с ф-цией Код: vbnet 1. 2.
я не справился. Т.е. как быть с GDI (которое не плюс)? Cat2использовать GDI(+) тогда , когда есть Direct2D некузяво Извини, но я не спрашивал ни про Direct2D, ни про Graphics, которая ==GDI+. Cat2ищите как сделать на Net Вот я и ищу "ПО-ЧЕСТНОМУ" как сделать в частности SetTextColor (которая у меня API) на .Net. Но это GDI, а не GDI+ (которая Grapics -Net обертка над GDI+). Т.е. по сути вопрос Есть ли в .Net "родная" обертка над GDI? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 15:01 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77 Есть ли в .Net "родная" обертка над GDI? весь .net является обёрткой над разнообразными API пиши c++ и ни в чём себе не отказывай ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 15:48 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77Не-а, не понял, здесь смотри: Как заменить "вдавленный стиль" на "серый" (в меню) 1) Речь не идет о "Strip", речь идет о нормальном меню (в .Net соответствует контролам MainMenu и ContextMenu -которые без слова СТРИП). 2) (Автоматом устанавливается только при включенных XP/Виста теме) Нет, автоматом НА КЛАССИЧЕСКОМ СТИЛЕ СИСТЕМЫ не устанавливается. Автоматом устанавливается Engraved (гравировка). "Engraved (гравировка)" и "серый" -это не одно и то же. Это принципиально важно? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 17:36 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77Cat2использовать GDI(+) тогда , когда есть Direct2D некузяво Извини, но я не спрашивал ни про Direct2D, ни про Graphics, которая ==GDI+. Я этого не писал. Вы вручную сделали эту "мою" цитату. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 17:38 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77Вот я и ищу "ПО-ЧЕСТНОМУ" как сделать в частности SetTextColor (которая у меня API) на .Net. Но это GDI, а не GDI+ (которая Grapics -Net обертка над GDI+). Т.е. по сути вопрос Есть ли в .Net "родная" обертка над GDI? Я не понимаю Вашего желания непременно отрисовывать контролы через GDI. Есть стандартные свойства. Их можно просто изменить или, при нужде, перехватит в событии onPaint и изменить по условию. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 17:43 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Cat2Я не понимаю Вашего желания непременно отрисовывать контролы через GDI. Есть стандартные свойства. Их можно просто изменить или, при нужде, перехватит в событии onPaint и изменить по условию. ну он хочет приключений. вольному воля. в отрисовке сконтролов средствами GDI , а ищё лучше Direct2D есть свой плюс. в частности можно сделать DataGridView , который будет работать на несколько порядков быстрее стандартного, не зависимо от количества строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 18:27 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
beg-in-er, тормознутость грида связана с GDI не в первую очередь ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 18:33 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Изопропилbeg-in-er, тормознутость грида связана с GDI не в первую очередь це правда. но всё же как то надо его отображать. либо через создание контролов, либо просто рисовать ячейки. а если рисовать , то выбор один из двух гди и директ2д ( для ценителей есть ещё ДиректХ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 18:39 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
beg-in-er, ох уж это стон опять раздается о тормознутости грида. да не тормознутый он, просто готовить надо,~~~ 60 -70 перерисовк в секунду - держит, ну кому это надо, эстонцам и раз в минуту сгодится.. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 19:06 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
beg-in-erдирект2д ( для ценителей есть ещё ДиректХ) ну тогда уж корректно назовём всё Direct3D ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 19:23 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Изопропилвесь .net является обёрткой над разнообразными API Вот я и спрашиваю: что в .Net есть обертка над GDI? Ну или скажите честно что конкретно ЭТО в .Net нереализовано. Cat2Дмитрий77Не-а, не понял, здесь смотри: Как заменить "вдавленный стиль" на "серый" (в меню) 1) Речь не идет о "Strip", речь идет о нормальном меню (в .Net соответствует контролам MainMenu и ContextMenu -которые без слова СТРИП). 2) (Автоматом устанавливается только при включенных XP/Виста теме) Нет, автоматом НА КЛАССИЧЕСКОМ СТИЛЕ СИСТЕМЫ не устанавливается. Автоматом устанавливается Engraved (гравировка). "Engraved (гравировка)" и "серый" -это не одно и то же. Это принципиально важно? А скажи, зачем мне делать ХУЖЕ чем уже сделано (через API)? Только затем что .NET этого сам не умеет? Не умеет, так и скажи. Я спрашивал: умеет ли .NET конкретно ЭТО с применением ЭТОГО механизма? Я не спрашивал что он ЕЩЕ УМЕЕТ. Мне не влом сделать это через API (тем более уже сделал). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 19:58 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77Не умеет, так и скажи. Я спрашивал: умеет ли .NET конкретно ЭТО с применением ЭТОГО механизма? Я не спрашивал что он ЕЩЕ УМЕЕТ. Мне не влом сделать это через API (тем более уже сделал). У тебя что ни тема, то "разоблачние" .Net. Может, ну его нафиг? На API ж все сделал ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 20:18 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77Вот я и спрашиваю: что в .Net есть обертка над GDI? Ну или скажите честно что конкретно ЭТО в .Net нереализовано. Не знаю, что вы имеtте ввиду. GDI в Nет есть. И уж точно множество функций в НЕТ не меньше, чем в VB6. Если Вы не можете организовать его вызовы - то это проблемы у Вас, а не у языка. Дмитрий77А скажи, зачем мне делать ХУЖЕ чем уже сделано (через API)? Только затем что .NET этого сам не умеет? Он умеет все, что умеет API. Не Вы ли в статовом топике писали, что у контролов нет hwnd? Уверяю, если Вы, наконец, почитаете мануалы, то сможете писать внешне хорошие программы. Насчет того, что Вы можете писать просто хорошие программы я сильно сомневаюсь. Яйца танцору мешают. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 21:06 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Cat2Не Вы ли в статовом топике писали, что у контролов нет hwnd?. Как смешно. А знаешь, я наверно был морально готов что у самопальных .Net контролов м.б. его и нет. Но я однако поправился: Дмитрий77Cat2пропущено... Вы принципиально не читаете мануалы? Код: c# 1.
Да теперь вижу что handle (HWND) есть Почму-то вчера набрал Picturebox1. и не увидел .handle Оч.удивился... (про-гля-дел!!!) Дмитрий77И уж точно множество функций в НЕТ не меньше, чем в VB6. А вот с этим я как раз не спорю. Иначе б не было смысла в него влезать. Дмитрий77GDI в Nет есть. Если Вы не можете организовать его вызовы - то это проблемы у Вас, а не у языка.. А ну раз так, то скажи мне как в .Net при полученном (средствами .Net) hdc установить SetTextColor. Код: vbnet 1. 2. 3. 4.
А вот потом будешь рассуждать про яйца и про мои способности. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 21:39 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77А ну раз так, то скажи мне как в .Net при полученном (средствами .Net) hdc установить SetTextColor.Graphics.DrawString? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 23:21 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
P.S.: топег не читал. Уж больно много Вы, коллега, буков пишете. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 23:22 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77, авторА ну раз так, то скажи мне как в .Net при полученном (средствами .Net) hdc установить SetTextColor. Не могу понять, а зачем поменять цвет текста, нужна такая практология? любой контрол содержит это свойство? если рисовать чтонить проблем нет как сказал skyANA ? можно и с градиентом... оооо, о гадиенте... айн момент.. *** на форме панель просто по бандитский Код: c# 1.
с поюсом конечно плохо, а как исполнить это без плюса? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 23:32 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Где-то в степиоооо, о гадиенте... айн момент.. Код: c# 1.
градиент в Graphic Net - говно. только 2 цвета. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 23:45 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
skyANAGraphics.DrawString? Это GDI+ А надо GDI: SetTextColor function SetTextColor The SetTextColor function sets the text color for the specified device context to the specified color. Examples For an example, see "Setting Fonts for Menu-Item Text Strings" in Using Menus . Не перерисовать итем меню через GDI+, просто поменять цвет текста (sets the text color for the specified device context to the specified color). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2013, 23:52 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Где-то в степи с поюсом конечно плохо, Вот-вот, плюс хорошо, но далеко не всегда. Где-то в степиа как исполнить это без плюса? Конкретно с градиентами например вот так: 14856102 (под спойлером, но это не .Net) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 00:04 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
beg-in-er, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 00:11 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Cat2Дмитрий77Cat2использовать GDI(+) тогда , когда есть Direct2D некузяво. Извини, но я не спрашивал ни про Direct2D, ни про Graphics, которая ==GDI+. Я этого не писал. Вы вручную сделали эту "мою" цитату. Да, не писал, извини. Это beg-in-er написал beg-in-erДмитрий77, использовать GDI(+) тогда , когда есть Direct2D некузяво нам даже не нужен WPF для этого... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 00:11 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77, Вот честно сказать: почетал Ваши топики, ну просто не осилил этот разговор самим с собой. Вы хотите заниматься казуистикой Api - net, так тут это не интересно все это экстерном подключается ( если есть нужда) Если вы твердо решили изучать язык это второе. И если все же второе, то вы просто больны синдромом эмигранта ( всё тут не как у людей...) Оставьте все это, и молчком читайте и читайте, через пол года или год наметится еще не открытый третий глаз (все зависит сколько вы на плюсах зависали ), лично я зависал ~ 9 лет, и в общем то ваша модель поведения знакома. Эта технология заточена для быстрого создания продукта, где во главе бизнес ( ну тут можно спорить), вы занырнули в формы, ну в общем то это логично, но кроме форм есть, технологии доступа к данным, веб технологии,wpf, асинхронность и тд.,так что не задерживайтесь забудьте все и двигайте дальше... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 00:42 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
beg-in-erградиент в Graphic Net - говно. только 2 цвета. Ничего подобного: сколько угодно цветов можно задавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 01:13 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Где-то в степи Код: c# 1.
ОК. был не прав ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 01:21 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
А вы мне вот чего лучше скажите. Нарисовал Panel (пытался и с той которая таблица, и с той которая обычная), присвоил ее BackGround Image. Накидал туда Lables со свойством TransParent Потом возим какой-нибудь другой формой поверх (особенно если интенсивно). Перерисовка идет жуткая. Lables -так и мигают белыми прямоугольниками. Как лечить? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 01:41 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Где-то в степи(все зависит сколько вы на плюсах зависали ), лично я зависал ~ 9 лет, и в общем то ваша модель поведения знакома. Эта технология заточена для быстрого создания продукта, где во главе бизнес ( ну тут можно спорить), вы занырнули в формы, ну в общем то это логично,... Не, плюсы я немного знаю, но писать полноценно на них не умею. Лет 12 тому назад решил, что не по зубам. И как правильно заметил, во главе бизнес и т.д. и т.п, читай "хочется что-то сделать относительно быстро". Все предыдущие наработки по API у меня на VB6. Возникла проблема, читаю msdn, и накатываю в VB6 не отказывая себе в просмотре чужих примеров. С т.зр. API разницы VB6 - VB.NET при небольшой наработке навыков никакой. Ну и естественно Forms к VB6 поближе. Просто VB6 морально устарел, в .Net очень многое действительно делается проще. Естественно я стараюсь сделать именно по .Net технологии, чтобы выиграть, и эти выигрыши уже как бы чувствуются. И все вопросы кот. задаю здесь касаются .Net а не API. Но если я понимаю что я проигрываю, то почему я должен себе отказывать в удовольствии сделать через API. Те знания кот. у меня есть позволяют мне с полпинка увидеть глюк и более того его исправить. Меня Label которые глючат без строчки кода (в VB6 кстати такой глюкоты нету), как то не очень вдохновляют. Я понял за пару часов как исправить, почитав вопли об этом на форумах. Знаешь как на .Net это сделать? Какой к черту бизнес если лейблы "ластиком стираются". Лучше когда без API (как правило проще и быстрее - во всяком случае так должно быть), но тандем с API, чем плох? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 07:39 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77Какой к черту бизнес если лейблы "ластиком стираются". бизнесу глубоко насрать на эти рюшечки, понимаешь? Деньги где? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 08:13 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Изопропил, И да, и нет. Когда я продавал металл, я писал программы для себя и мне было насрать на кривые кнопки, на стили и даже на происходящие частенько критические ошибки, проще перезапустить чем исправить. А вот если я пишу для других (не для себя и не для своего дяди шефа), то стирание ластиком и панели в стиле VB-classic это нехорошее первое впечатление, случайная ошибка при инсталляции или начальных тестах это уже очень плохое второе впечатление. Этого уже может быть достаточно чтоб продукт не купили, даже не выясняя чего он умеет (для бизнеса). >Деньги где? Денег как бы счас больше чем от продажи железа. При этом работать до фига над чем есть, что я и делаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 09:14 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77, а что за "ядерная" софтина? Если не секрет... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 11:38 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
buser, GUI для софтфона он пишет, а с++ изучать не хочет. Вот и страдает ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 12:02 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Изопропил, сурово... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 12:06 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Изопропил, а не проще ли сразу лабать GUI на JavaScript или даже на WebGL. универсальнее, маштабируемее. хотя это вопрос к оналитегам и прожект-манахерам ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 12:11 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
beg-in-erа не проще ли сразу лабать GUI на JavaScript или даже на WebGL. универсальнее, маштабируемее. хотя это вопрос к оналитегам и прожект-манахерам да хоть на Qt ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 14:06 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77А ну раз так, то скажи мне как в .Net при полученном (средствами .Net) hdc установить SetTextColor. Код: vbnet 1. 2. 3. 4.
А вот потом будешь рассуждать про яйца и про мои способности. Если мне надо писать по канве, то я использую DrawString без клоунады с API. То есть теперь могу порассуждать о яйцах танцора и его способности. Может быть яйца не мешают, может быть способности есть. Но в них не входит способность изучать новое. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 16:51 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77Как лечить? Во-первых поставит doublebufering для формы. Во-вторых я уже давал в этом топике пример сокрытия рисования Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 16:54 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77, авторЛучше когда без API (как правило проще и быстрее - во всяком случае так должно быть), но тандем с API, чем плох? да он ничем не плох, есть одно но, о нем чуть позже, если возникла нужда обращаться айпи, первое что надо искать - какие стандартные библиотеки уже реализуют этот механизм второе, есть ли кастомные библиотеки? если второе не устраивает, вперед и с песней, примеров кода ну просто предостаточно.. дело вот в чем, при обращении к айпи, ( или через сервер айпи или минуя его как io) создается объект ядра который держит ссылку на внешнее обращение, как правило мы вытаскиваем всякие структуры для чтения и модификации эти структуры надо хранить в памяти приложения и в виде пригодном для работы с объектом ( смещение, типизация), и хранить в постоянном адресном пространстве кучи - а это уже идет в разрез с политикой коллектора, ибо затрудняет дефрагментацию, мало того объекты захватываю ресурсы для своих нужд, и приходится декларировано освобождать их, плюс еще малая информативность по не верным исполнением метода, приходится дергать последнею ошибку, ну и главное в промышленной разработке вам просто старший не даст их использовать ибо все уже до нас перекрыто ( строить велосипед), остается молча учить что нам дано и гуглить.. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 17:22 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Cat2Дмитрий77Как лечить? Во-первых поставит doublebufering для формы. Во-вторых я уже давал в этом топике пример сокрытия рисования Это ты мне про Label's говоришь? Про это говорим? Во-первых doublebufering для формы не помогает, я поплевался но попробовал еще вчера -не помогает Во-вторых, предлагаешь их тоже через DrawString рисовать. Видел я такой совет. Ню-ню. Это почище чем API, в конструкторе то как бы удобнее, или че, читать Label.Text и рисовать поверх свой текст через OnPaint? При этом следя за шрифтами, выравниванием и т.п. Ню-ню. Комфорт налицо. Opacity=99% -все что ты реально можешь сделать если не через API(-1% не заметен). Да и то: при выводе формы на месте меток мелькнут черные квадраты. Через API я сначала делаю 0%, а через миллисекунду 100%, в этом хитрость. При этом при 100% стиль WS_EX_LAYERED не снимается (через API), а в >Net эта фишка не проходит. Не, ну сделай по другому: форма, картинка, 10-15 lable поверх, смотри сразу на XP. Или ты считаешь что меня такой метод лечения через прозрачность формы устраивает? Cat2Дмитрий77А ну раз так, то скажи мне как в .Net при полученном (средствами .Net) hdc установить SetTextColor. Код: vbnet 1. 2. 3. 4.
А вот потом будешь рассуждать про яйца и про мои способности. Если мне надо писать по канве, то я использую DrawString без клоунады с API. То есть теперь могу порассуждать ...Но в них не входит способность изучать новое. Не, не можешь. Во-первых это не прилично. Во-вторых ты не решил задачи. DrawString ты можешь использовать в клоунаде из стрипов. А не когда речь идет о стандартном меню , которое в Net заметь поддерживается через контролы MainMenu и ContextMenu. Своим DrawString ты в лучшем случае изгадишь стиль (который на порядок профессиональней чем у менюстрипов). Я тебе еще могу добавить, что menu_DrawItem у меня вызывается не за счет OwnerDraw, а за счет HBMMENU_CALLBACKA bitmap that is drawn by the window that owns the menu. The application must process the WM_MEASUREITEM and WM_DRAWITEM messages. Речь не идет о рисовании. Речь идет об "sets the text color for the specified device context to the specified color". Всего лишь об установке цвета текста для hdc, когда ты (не ты а система в данном случае) будет этот текст туда рисовать. Если б у меня не было способностей (и желания) изучать новое, меня б тут вообще не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 19:47 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77Во-вторых ты не решил задачи. Я совсем не собирался решать Вашу задачу, смысла которой я не вижу. Зачем подменять стандартное поведение контрола? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 21:03 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77Если б у меня не было способностей (и желания) изучать новое, меня б тут вообще не было. тебе в c++ нужно, а здесь ты микроскопом гвозди забиваешь ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 21:08 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Cat2Я совсем не собирался решать Вашу задачу, смысла которой я не вижу. Ну не собирался, и надо. Знаешь ответ на поставленный вопрос (а я вроде достаточно четко формулирую), не жалко - ответь. А не знаешь, не надо про способности и т.д. Cat2Зачем подменять стандартное поведение контрола? Понятия у нас с тобой разные о контролах и о их стандартных поведениях. Я то базовые документации читаю, а ты только .Net-овские (предположительно). В VB6 с обертками как бы хуже чем в .Net, но по крайней мере там к API уважение, а здесь у вас секта какая-то, а кумир -уборщик мусора, эдакий дядя дворник с метлой, который типа "все знает что и как делать", слово "типа" ключевое. P.S. Не хотел никого обидеть. Изопропилтебе в c++ нужно, а здесь ты микроскопом гвозди забиваешь Да не хочу. Я на бэйсике воспитан. В C++ своих религиозных фанатиков хватает. Задаешь вопрос как из одной строки сделать другую, тут же дискуссия на неделю вперед. Где у меня эти недели? Здесь хоть врубаться во что-то начал. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 22:33 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Дмитрий77а здесь у вас секта какая-то сюда это их Java пришло Дмитрий77который типа "все знает что и как делать", слово "типа" ключевое. не осилил, как вижу. Дмитрий77Я на бэйсике воспитан травма тяжёлая, но излечимая ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 00:03 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Может попробовать WPF? Не хотел никого обидеть, просто мысль... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 09:34 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Алексей К, издеваешься? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 10:12 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
сервелат наше фсьо! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 11:16 |
|
Picturebox, Panel, GroupBox, прочие контейнеры(.Net);Picturebox, Frame (VB6);GDI(не плюс!)
|
|||
---|---|---|---|
#18+
Antonariyсервелат наше фсьо! одним конкурентом меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 11:25 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1403823]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 318ms |
0 / 0 |