|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
Ну т.е. форма типа заставки (окно about). Для красоты шапка окна убрана (Form.Caption=пусто и кнопки убраны). Зоны "формы" тоже как бы нет. Грубо несколько PictureBox вплотную. За что б ее подвигать и как? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2010, 05:26 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
Можно за что угодно :-) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2010, 05:45 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
> Автор: Дмитрий77 > За что б ее подвигать и как? Вот здесь Antonariy давай ссылку на учебник,в котором есть несколько любопытных примеров. Перетаскивание формы за любое место: Const WM_NCLBUTTONDOWN = &HA1 Const HTCAPTION = 2 Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" (ByVal hWnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long Private Declare Function ReleaseCapture Lib "user32" () As Long Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) ReleaseCapture SendMessage Form1.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0 End Sub Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2010, 11:16 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
Игорь Горбонос, Ваш пример через API явно культурнее, займусь его имплементацией. ZVI, вам также спасибо. Но честно я счаслив что не использовал/не интересовался этим "детским" способом раньше. Здесь можно провести аналогию с "разделителем". Взаимное положение ListView/Treeview "Детские способы" вызывают много мульт-спец-эффектов, т.е. по способу 1 можно экран веерами этой формой раскрашивать, в в способ 2 все культурно. А в случае с раздлителями я до сих пор еще не доборолся с последствиями "детства", уж больно хитро\' у меня местами с этими дельтами. Кстати попутно вопрос : Как сделать так, чтоб шапка не показывалась, но при этом ShowInTaskbar=true и там было описание окна? Если это About как modal от основной формы, то ShowInTaskbar не нужен. А если это About вызванный из трея, то очень даже не повредит, ибо накроется другим окном и не увидишь, а делать непотопляемыми такие окна думаю свинство. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2010, 17:06 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
Дмитрий77... Как сделать так, чтоб шапка не показывалась, но при этом ShowInTaskbar=true и там было описание окна? Если это About как modal от основной формы, то ShowInTaskbar не нужен. А если это About вызванный из трея, то очень даже не повредит, ибо накроется другим окном и не увидишь, а делать непотопляемыми такие окна думаю свинство. Ну, вот Вам не "детский" пример, хотя и без любимых Вами "перламутровых пуговиц" :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 05:09 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
Забыл вложить ICO, приложил полный вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 07:22 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
ZVI, спасибо. Только с пикселями наверно зря возитесь. Так думаю достаточно. Код: plaintext 1. 2. 3. 4. 5.
1)Если это About как modal от основной формы, то ShowInTaskbar не нужен. 2) А если это About вызванный из трея, то очень даже не повредит Т.е. у меня трей и about это разные exe, тот exe где about слишком сложный и я не стал его мешать с треем. Но из его формы about тоже вызывается. Дело в том что ShowInTaskbar в режиме выполнения не поменять, а только в конструкторе. Можно через API через сабклассинг формы при ее старте, я сам тут давал ссылку на пример с акселератора, но думаю здесь это лишний геморрой, проще одну форму 2 раза в 2-а экзешника воткнуть наверно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 08:22 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
А с другой стороны, все эти градиенты и 32-битные иконки отрисовывать... да еще рискуя что антивирус лишний раз за ж извините ни за что из за этих картинок схватит, м.б. проще лишний сабклассинг нарисовать... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 08:29 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
1) Только с пикселями наверно зря возитесьСовсем не вожусь :-) Не обращайте внимания на то, что вне темы типа ограничения одной копии в памяти и т.п. Пример ведь был к тому, что я цитировал: Как сделать так, чтоб шапка не показывалась, но при этом ShowInTaskbar=true и там было описание окна? ... если это About вызванный из трея, то очень даже не повредит, ибо… 2)Т.е. у меня трей и about это разные exe, тот exe где about слишком сложный и я не стал его мешать с треем. Но из его формы about тоже вызывается. Какая разница сколько приложений? Используйте приведенный мною пример формы frmAbout с соответствующим кодом в том приложении, в котором нужно. 3) Дело в том что ShowInTaskbar в режиме выполнения не поменять, а только в конструкторе. Можно через API через сабклассинг формы при ее старте… Да легко это делается как при загрузке формы, так и в runtime: Hide/Show Form in taskbar at runtime Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 22:56 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
Private Declare Function FindWindow... - лишнее ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2010, 23:04 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
ZVI, спасибо, позже поиграюсь. Да суть я там уловил как вы наверно заметили. А по поводу пикселей, вы это делаете типа Workaround чтоб форма не складывалась вместо SWP_NOSIZE. Но только у меня есть сомнения, что на XP- или виста- стилях эти +6 будут именно +6, а не 7-8-9, у меня сразу подозрения на эту тему закрались, поэтому это место не понравилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2010, 06:33 |
|
Как двигать форму если "шапки" у нее нет.
|
|||
---|---|---|---|
#18+
Дмитрий77ZVI, спасибо. Только с пикселями наверно зря возитесь. Так думаю достаточно. Код: plaintext 1. 2. 3. 4. 5.
Оказывается недостаточно, проглядел. Суммарная высота формы не меняется, т.е. снизу кусок добавляется. Поступил по другому. Заготавливаем форму без шапки (без Caption и кнопок) и делаем трюк. Независимо от стиля все будет нормально. Код: plaintext 1. 2. 3. 4. 5. 6. 7.
По поводу ShowInTaskBar мне нужно только это (в конструкторе false): Код: plaintext 1. 2. 3. 4. 5. 6.
Чего вышло прилагается. =========================== ZVI, может сюда глянете. Как свернуть форму в левый нижний угол экрана? Игрался с Вашим кодом и случайно исполнил трюк (одновременно Taskbar+левый угол), который не мог понять как сделать. Но он получился не совсем так как задумано, т.е. синхронно. Там все попытался объяснить. =========================== ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2010, 07:33 |
|
|
start [/forum/topic.php?fid=60&msg=37012626&tid=2159146]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 135ms |
0 / 0 |