Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 |

 

  Вопрос: Собственные стили окон Добавлено: 05.02.11 20:30  

Автор вопроса:  PROgrammIST | Web-сайт: forum.quotedev.org.ru | ICQ: 403099048 

Ответить

  Ответы Всего ответов: 33  

Номер ответа: 16
Автор ответа:
 Захарка



Вопросов: 0
Ответов: 42
 Профиль | | #16 Добавлено: 06.02.11 00:48
Понятно спасибо, просто не люблю неопределённо писать, если вызываю Picture тогда и показываю чьё вызываю, код легче читается.

Ответить

Номер ответа: 17
Автор ответа:
 udn79



Вопросов: 2
Ответов: 95
 Профиль | | #17 Добавлено: 06.02.11 01:45
Когда пишу собственный код, то предпочтение я отдаю конструкции
  1.  
  2. With Picture1
  3.   ....
  4. End With

И работает быстрей и код красивей получается. Ну а когда копирую, тут уж не обессудьте, что есть то есть.

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

  1. '/**  Процедура обработки нажатия кнопки с помощью мыши  
  2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.     ' код пользователя ...............
  4. End Sub


Вы же тоже не создаете таких коментариев.
Вот и я не придаю особого значения, описанию встроенных компонентов.

Ответить

Номер ответа: 18
Автор ответа:
 udn79



Вопросов: 2
Ответов: 95
 Профиль | | #18 Добавлено: 06.02.11 01:47
Я оговорился немного,не подумайте, что я провас плохо думаю.

Ответить

Номер ответа: 19
Автор ответа:
 udn79



Вопросов: 2
Ответов: 95
 Профиль | | #19 Добавлено: 06.02.11 05:01
PROgrammIST
Для vb6
Могу скинуть исходник " форма встиле gif изображения", правда контролы на ней встиле ХР, как из картинки кнопку сделать думаю примеры не нужно приводить.
в архиве есть и рабочий бинарник этого примера. Где скачилал не спрашивай, все равно не вспомню.

Коментариев там нет, но код и так понятен.

Ответить

Номер ответа: 20
Автор ответа:
 PROgrammIST



ICQ: 403099048 

Вопросов: 22
Ответов: 94
 Web-сайт: forum.quotedev.org.ru
 Профиль | | #20
Добавлено: 06.02.11 12:09
udn79, а операции, которые в исходниках, можно проделывать через другую программу? Просто делать все операции с изменениями тем в запускаемых приложениях не получиться (точнее мне не подходит), да и исходники на это дело у меня есть. Так что если можно проделывать из другого приложения операции - то тогда если не сложно - скинь плиз. Буду оч благодарен))

Ответить

Номер ответа: 21
Автор ответа:
 PROgrammIST



ICQ: 403099048 

Вопросов: 22
Ответов: 94
 Web-сайт: forum.quotedev.org.ru
 Профиль | | #21
Добавлено: 06.02.11 12:10
udn79 пишет:
Коментариев там нет, но код и так понятен.


ды эт ничего) я уже привык работать с исходниками без комментов))

Ответить

Номер ответа: 22
Автор ответа:
 udn79



Вопросов: 2
Ответов: 95
 Профиль | | #22 Добавлено: 06.02.11 13:06
1)Такого нет, да и управление отрисовкой чужого окна, потребует установку глобального хука на WM_PAINT, возможно и не только на это событиет.
2) если ты изменишь стиль бордюра чужого окна придется обрабатывать еще и события мыши.
3) Если даже программно создавать временного пользователя, то как назначить ему собственный профиль я не знаю, максимум, что можно будет сделать, это установить другие цвета в систему программно для нового пользователя.
4) Один из вариантов, это размещение подобного кода в памяти другого процесса, что тоже вызывает ряд проблем.

Ты писал что хочешь запускать программу с собственным стилем, но стиль включает очень многое и я не понимаю, что ты имеешь ввиду.
Можно подумать, что ты хочешь подменять тему OS.

Многие функции тебе придется переделывать на более быстрые.

  1.  
  2. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  3. 'коректная обработка перетаскивания формы
  4. If Button = 1 Then
  5. ReleaseCapture
  6. SendMessage Me.hwnd, &HA1, 2, 0&
  7. End If
  8. End Sub



Я думаю ты бросишь уже скоро это ... занятие, чтобы потратить свое время на более приемлемые вещи))

Ответить

Номер ответа: 23
Автор ответа:
 udn79



Вопросов: 2
Ответов: 95
 Профиль | | #23 Добавлено: 06.02.11 13:17
PROgrammIST
Покопай еще в сторону создание виртуального рабочего стола, по моему в некоторых готовых бинарниках есть возможность изменять темы на виртуальных столах.

Ответить

Номер ответа: 24
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #24 Добавлено: 07.02.11 13:06
PROgrammIST
Берешь при запуске свою тему винды, меняешь тему винды на свою, при выключении программы возвращаешь всё на место.
Свою тему нарисуешь заранее, благо программ в интете предостаточно.
THE END

Ответить

Номер ответа: 25
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #25 Добавлено: 07.02.11 13:10
Тему менять можно хоть автоматизацией:
открываешь (ПРОГРАМНО) окно "Свойства: экран", нажимаешь на выбор темы, нажимаешь обзор, выбираешь свой файл.
ИЛИ меняешь параметры винды
-----
Если я не понял вопрос, извиняюсь.

Ответить

Номер ответа: 26
Автор ответа:
 Dan



ICQ: 609276007 

Вопросов: 24
Ответов: 195
 Профиль | | #26 Добавлено: 07.02.11 13:12
Но если только для твоей проги это тебе нужен дотнет, а то тяжело без него.

Ответить

Номер ответа: 27
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #27
Добавлено: 11.02.11 14:15
http://www.vbaccelerator.com/home/VB/Code/Controls/Skins/article.asp

Ответить

Номер ответа: 28
Автор ответа:
 udn79



Вопросов: 2
Ответов: 95
 Профиль | | #28 Добавлено: 22.02.11 14:23
1) отключаем бордюры ручками
2) делаем форму прозрачной
  1.  
  2.  
  3. Private Sub Form_Load()
  4.   Me.BackColor = vbBlack
  5.   SetWindowLong Me.hWnd, -20, GetWindowLong(Me.hWnd, -20) Or &H80000   // включить на форме расширенный стиль
  6.   SetLayeredWindowAttributes Me.hWnd, Me.BackColor, 255, 3  '' 255/100 *(коэфф. прозрачности) если  требуется использовать полупрозрачность
  7.   loadSkin "frmSkin.gif"  ''  новое изображение формы
  8.   setSkin hDC, 0, 0, mDC, 0, 0, 800, 546, vbBlack, True  // применении скина      
  9. End Sub        


2) так как бордюры отключены, реализуем перенос формы за любое место
  1.  
  2. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  3.     Call ReleaseCapture
  4.     Call SendMessage(hWnd, &HA1, 2, 0&)
  5. End Sub


3) Реалезуем загрузку изображения из файла в виртуальный контекст
  1.  
  2. Private Sub loadSkin(sSkin As String)  '' sSkin - имя файла загружаемого изображения
  3.     Dim pic As StdPicture              '' pic - наш Bitmap    
  4.     Set pic = LoadPicture(sSkin)       '' загружаем Bitmap
  5.     mDC = CreateCompatibleDC(0)
  6.     Call SelectObject(mDC, pic.Handle) '' применить  Bitmap  для виртуального контекста
  7.     Set pic = Nothing                  '' удаляем Bitmap - так как изображение скопировано в память      
  8. End Sub



4) Собственно осталось реализовать только вывод наших скинов на нашу прозрачную форму
  1.  
  2. 'w = Width : h = Height  'размер копируемого изображения
  3.  
  4. Private Sub setSkin(DC&, dX&, dY&, fromDC&, sX, sY, w&, h&, mask&, fEnd As Boolean)
  5. Call (hDC, dX, dY, w, h, mDC, sX, sY, w, h, mask&)
  6. If fEnd Then DeleteDC mDC
  7. End Sub



5) Пробуем

  1.  
  2. Private Sub Form_Load()
  3.     BackColor = vbBlack
  4.     SetWindowLong Me.hWnd, -20, GetWindowLong(Me.hWnd, -20) Or &H80000
  5.     SetLayeredWindowAttributes Me.hWnd, 0, 255, 3
  6.     loadSkin "frmSkin.gif"
  7.     setSkin hDC, 0, 0, mDC, 0, 0, 800, 546, vbBlack, True
  8. End Sub


Ответить

Номер ответа: 29
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #29 Добавлено: 22.02.11 22:19
Из пустого в порожнее.
Гугл PNG FORM

Ответить

Номер ответа: 30
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #30
Добавлено: 22.02.11 22:34
Dan пишет:
 нужен дотнет

это почему?

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам