Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

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

 

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

Автор вопроса:  PROgrammIST | Web-сайт: forum.quotedev.org.ru | ICQ: 403099048 
Ребят!
Понадобилась помощь!
Возможно ли сделать так, чтобы при запуске приложения стандартная тема Windows обрезалась, а вместо нее рисовалась новая?
Или можно ли сделать как-то без обрезания, но чтобы своя тема была видна, а не тема Windows...

P.S.: только желательно все эти процессы выполнять из другого файла, который будет постоянно запущен и как раз он и будет рисовать новую тему в открытом приложении заместо темы Windows.

Ответить

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

Номер ответа: 1
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #1
Добавлено: 05.02.11 21:21
P.S.: только желательно все эти процессы выполнять из другого файла, который будет постоянно запущен и как раз он и будет рисовать новую тему в открытом приложении заместо темы Windows.

Знаешь, сколько это будет жрать?

Если хочешь красивого интерфейса всем окнам, ставь семерку. Если хочешь что-то индивидуальное для своего - учи WPF.

Ответить

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



ICQ: 403099048 

Вопросов: 22
Ответов: 94
 Web-сайт: forum.quotedev.org.ru
 Профиль | | #2
Добавлено: 05.02.11 21:24
WPF

а разве есть WPF для vb6?

Ответить

Номер ответа: 3
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #3 Добавлено: 05.02.11 21:37
он как бы на дотнет намекает

Ответить

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



Вопросов: 2
Ответов: 95
 Профиль | | #4 Добавлено: 05.02.11 21:39
Можно и таких пиложений много, применяется стандартная перерисовка полигона форма.
Где можно форму сделать в форме графического изображение.
Сейчас не момню как это точно называется, но при случае сдесь выложу.
Форма в виде обнаженной девушки либо интересной тебе собственной тематики.
Также относится и кнопкам, тоесть стиль исполнения станет как в играх.

Ответить

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



ICQ: 403099048 

Вопросов: 22
Ответов: 94
 Web-сайт: forum.quotedev.org.ru
 Профиль | | #5
Добавлено: 05.02.11 21:45
AgentFire пишет:
он как бы на дотнет намекает

ну я так впринципе и подумал))) эт мой просчет - не уточнил на чем))

udn79 пишет:
Можно и таких пиложений много, применяется стандартная перерисовка полигона форма.
Где можно форму сделать в форме графического изображение.
Сейчас не момню как это точно называется, но при случае сдесь выложу.
Форма в виде обнаженной девушки либо интересной тебе собственной тематики.
Также относится и кнопкам, тоесть стиль исполнения станет как в играх.

заранее спасиб)) будем ждать))

Ответить

Номер ответа: 6
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #6
Добавлено: 05.02.11 22:13
PROgrammIST пишет:
а разве есть WPF для vb6?

Делаем обертки для классов WPF и включаем COM-видимость. Или просто пересаживаемся на дотнет. Выбриай.

Ответить

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



Вопросов: 2
Ответов: 95
 Профиль | | #7 Добавлено: 05.02.11 22:14
  1.  
  2.  
  3. Option Explicit
  4.  
  5. Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  6. 'Private Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long) As Long
  7. Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
  8. Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
  9. Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  10. 'Private Declare Function OleTranslateColor Lib "oleaut32" (ByVal lOleColor As Long, ByVal lHPalette As Long, lColorRef As Long) As Long
  11. Private Declare Function GetTickCount Lib "kernel32" () As Long
  12. Private Const RGN_OR = 2
  13.  
  14. Private Type BITMAPINFOHEADER
  15.     biSize As Long
  16.     biWidth As Long
  17.     biHeight As Long
  18.     biPlanes As Integer
  19.     biBitCount As Integer
  20.     biCompression As Long
  21.     biSizeImage As Long
  22.     biXPelsPerMeter As Long
  23.     biYPelsPerMeter As Long
  24.     biClrUsed As Long
  25.     biClrImportant As Long
  26. End Type
  27. Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFOHEADER, ByVal wUsage As Long) As Long
  28. Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
  29. Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
  30.  
  31. Private Function lGetRegion(ByVal lBackColor As Long, ByVal Picture As StdPicture) As Long
  32. Dim lRgn As Long
  33. Dim lSkinRgn As Long
  34. Dim lStart As Long
  35. Dim lX As Long
  36. Dim lY As Long
  37. Dim ms As Long
  38.  
  39. Dim bi As BITMAPINFOHEADER, bits() As Long, hdc As Long
  40. With bi
  41.     .biSize = LenB(bi)
  42.     .biWidth = ScaleX(Picture.Width, vbHimetric, vbPixels)
  43.     .biHeight = ScaleY(Picture.Width, vbHimetric, vbPixels)
  44.     .biPlanes = 1
  45.     .biBitCount = 32
  46.     .biCompression = 0
  47.     ReDim bits(0 To .biWidth - 1, 0 To .biHeight - 1)
  48.     hdc = CreateCompatibleDC(0)
  49.     GetDIBits hdc, Picture, 0, bi.biHeight, bits(0, 0), bi, 0
  50.     Call DeleteDC(hdc)
  51.     
  52.     lSkinRgn = CreateRectRgn(0, 0, 0, 0)
  53.  
  54.     For lX = 0 To .biHeight - 1
  55.         lY = 0
  56.         Do While lY < .biWidth
  57.             Do While lY < .biWidth
  58.                 If bits(lY, lX) <> lBackColor Then Exit Do
  59.                 lY = lY + 1
  60.             Loop
  61.  
  62.             If lY < .biWidth Then
  63.                 lStart = lY
  64.                 Do While lY < .biWidth
  65.                     If bits(lY, lX) = lBackColor Then Exit Do
  66.                     lY = lY + 1
  67.                 Loop
  68.                 If lY > .biWidth Then lY = .biWidth
  69.                 lRgn = CreateRectRgn(lStart, .biHeight - lX - 1, lY, .biHeight - lX)
  70.                 CombineRgn lSkinRgn, lSkinRgn, lRgn, RGN_OR
  71.                 DeleteObject lRgn
  72.             End If
  73.         Loop
  74.     Next
  75. End With
  76. lGetRegion = lSkinRgn
  77. End Function
  78.  
  79. Private Sub Form_DblClick()
  80.     Unload Me
  81. End Sub
  82.  
  83. Private Sub Form_Load()
  84. Dim lRgn As Long, Start As Long
  85.  Screen.MousePointer = 13
  86.     Show
  87.     Start = GetTickCount
  88.     lRgn = lGetRegion(0, Picture)
  89.     SetWindowRgn hWnd, lRgn, True
  90.     Debug.Print GetTickCount - Start
  91.  Screen.MousePointer = vbDefault
  92. End Sub



lGetRegion(0, Picture), где Picture - это фон формы, 0 цвет который игнорировать при прорисовке, бордюры на форме нужно отключить

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

Ответить

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



Вопросов: 2
Ответов: 95
 Профиль | | #8 Добавлено: 05.02.11 22:29
Ты рабочий пример дай на хоть на дотнет, переведет на vb6, не сможет я ему помогу, а не болоболь как попугай одно слово дотнет, дотнет, дотнет... дотнет во всех топиках.

Ответить

Номер ответа: 9
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #9
Добавлено: 05.02.11 22:45
Это ты кому?

Ответить

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



Вопросов: 2
Ответов: 95
 Профиль | | #10 Добавлено: 05.02.11 23:30
{Ctrl+F} --> "дотнет" + {Enter}
открываешь следующий топик
{Ctrl+F} --> "дотнет" + {Enter}

V&#946;&#208;U&#951;&#236;t, забей, кому нужно тот понял.

AgentFire, ты ведь меня понял...))

Ответить

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



Вопросов: 0
Ответов: 42
 Профиль | | #11 Добавлено: 06.02.11 00:22
Да без вопросов!!! Вот тебе код для дотнета:
  1.  
  2.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  3.         Me.FormBorderStyle = FormBorderStyle.None
  4.         Me.BackgroundImage = New Bitmap("D:\\z_89671040.jpg") 'адрес файла
  5.         Me.TransparencyKey = Color.Black 'цвет заменяемый на прозрачный
  6.     End Sub


Переводи его на VB6 пожалуйста)))

Ответить

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



Вопросов: 2
Ответов: 95
 Профиль | | #12 Добавлено: 06.02.11 00:29
Этот уже приведет, смыс еще раз писать одно и тоже.

Ответить

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



Вопросов: 2
Ответов: 95
 Профиль | | #13 Добавлено: 06.02.11 00:32
Set Picture = LoadPicture(";D:\\z_89671040.jpg";) // если больше нравиться

Ответить

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



Вопросов: 0
Ответов: 42
 Профиль | | #14 Добавлено: 06.02.11 00:36
Можете конечно назвать меня идиотом, но не могли бы вы обьяснить мне смысл данной фразы:
Этот уже приведет, смыс еще раз писать одно и тоже.

Ответить

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



Вопросов: 2
Ответов: 95
 Профиль | | #15 Добавлено: 06.02.11 00:45
Set Picture = LoadPicture("с:\\z_89671040.jpg";)

При работе со свойствами и методами обьекта Me, в модуле формы приставку Me. можно не писать.
Тоесть этот код равносилен
  1.  
  2. Set Me.Picture = LoadPicture("с:\\z_89671040.jpg")

Ответить

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

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



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