Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: форма в виде треугольнука, как? Добавлено: 19.06.09 10:48  

Автор вопроса:  LEX1ERS | ICQ: 4204936 
Как сделать форму в виде треугольника?как в виде эллипса знаю, но там достаточно указать сам круг и его размеры...а как треугольник хз(

Ответить

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

Номер ответа: 1
Автор ответа:
 Stars



Вопросов: 41
Ответов: 239
 Профиль | | #1 Добавлено: 19.06.09 14:46
Creator Forms v1.4 прога такая есть для VB формы делаеш любые там а потом код берёш уже готовый

Ответить

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



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #2
Добавлено: 19.06.09 15:47
Не, лучше юзай Homacosoft FormCreator

http://formcreator.homacosoft.com/

там модификаторы разные еще есть всякие, код можно сгенерированный настроить и еще кучка удобств :)

Ответить

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



ICQ: 4204936 

Вопросов: 38
Ответов: 100
 Профиль | | #3 Добавлено: 19.06.09 19:28
Спасибо,но к сожелению не могу качать, ибо на пк нэта нет, а если с телефона то трафик идёт на кб (( если есть с маленьким размером прога, то назовите её пожалуйста... или код треугльника

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #4
Добавлено: 19.06.09 19:44
lex1ers, всё проще. и не нужны дополнительные тулзы (это преимущество)
  1. Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  2. Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  3. Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
  4. Private Const LWA_ALPHA = &H2
  5. Private Const LWA_COLORKEY As Long = &H1
  6. Private Const GWL_EXSTYLE = (-20)
  7. Private Const WS_EX_LAYERED = &H80000
  8.  
  9. Public Sub SetTranspLevel(ByVal hWnd As Long, ByVal pp As Byte)
  10. Call SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED)
  11. SetLayeredWindowAttributes hWnd, 0, pp, LWA_ALPHA 'делаем прозрачным, где pp-прозрачность от 0 до 255
  12. End Sub
  13.  
  14. Public Sub SetTranspColor(ByVal hWnd As Long, ByVal color As Long)
  15. Call SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED)
  16. Call SetLayeredWindowAttributes(hWnd, color, 0, LWA_COLORKEY)  'делаем прозрачным цвет color
  17. End Sub

Твоя задача - закрасить как-либо всю форму кроме треугольника в цвет X
а затем вызвать SetTranspColor(хендл_формы, цвет_X)

Ответить

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



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #5
Добавлено: 20.06.09 08:39
Не, ну если так уж по-мануальному, то вообще юзай в качестве прозрачности PNG. Там тебе и прозрачность, и полупрозрачность в некоторых местах, и эффект стекла, и сглаживание.

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #6
Добавлено: 20.06.09 18:09
PNG скины? это не так просто. Нужно все контролы вручную рисовать

Ответить

Номер ответа: 7
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #7
Добавлено: 20.06.09 18:11
зато кошерно

Ответить

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



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #8
Добавлено: 20.06.09 20:32
PNG скины? это не так просто. Нужно все контролы вручную рисовать
Зато мегастильно. Особенно, если контролы в 3Ds Max нарисованы. И... и анимированы. Я такое люблю :)))

Ответить

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



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #9
Добавлено: 20.06.09 20:34
Кстат вспомним мою мануальную фишку: http://alphadream.homacosoft.com/HelloWorld.exe

:)

Ответить

Номер ответа: 10
Автор ответа:
 Серёга



ICQ: 262809473 

Вопросов: 17
Ответов: 561
 Web-сайт: houselab.narod.ru
 Профиль | | #10
Добавлено: 21.06.09 00:16
  1. Private Type POINTAPI
  2.         x As Long
  3.         y As Long
  4. End Type
  5. Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
  6. Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  7. Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
  8.  
  9. Private Sub Form_Load()
  10. Dim a(2) As POINTAPI
  11. Dim hRgn As Long
  12. a(0).x = 0
  13. a(0).y = 0
  14. a(1).x = 100
  15. a(1).y = 0
  16. a(2).x = 50
  17. a(2).y = 100
  18. hRgn = CreatePolygonRgn(a(0), 3, 2)
  19. SetWindowRgn Me.hWnd, hRgn, True
  20. DeleteObject hRgn
  21. End Sub

Ответить

Номер ответа: 11
Автор ответа:
 AntiOxygene (MegaDefender)



Вопросов: 2
Ответов: 107
 Web-сайт: safetyAV.narod.ru
 Профиль | | #11
Добавлено: 21.06.09 01:14
Интересно, а админы на этом форуме существуют? Везде реклама VBD - "www.homacosoft.com", "form creator", "xtreme antivirus", "xqr2". Это нормально?!

Ответить

Номер ответа: 12
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #12 Добавлено: 21.06.09 01:16
Существуют. Да, это нормально. Ещё вопросы?

Ответить

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



ICQ: 4204936 

Вопросов: 38
Ответов: 100
 Профиль | | #13 Добавлено: 21.06.09 08:40
ну а как проявить прозрачность png, bmp, и gif (если эт возможно) ? Можно эт назвать вообщем картинка (с прозрачностью) вместо формы...

Ответить

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



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #14
Добавлено: 21.06.09 08:48
Код модуля:
  1. Public Type GdiplusStartupInput
  2.     GdiplusVersion As Long
  3.     DebugEventCallback As Long
  4.     SuppressBackgroundThread As Long
  5.     SuppressExternalCodecs As Long
  6. End Type
  7. Public Declare Function GdipDrawImageRect Lib "gdiplus" (ByVal graphics As Long, _
  8. ByVal image As Long, ByVal x As Single, ByVal y As Single, ByVal Width As Single, ByVal Height As Single) As GpStatus
  9. Public Declare Function GdipLoadImageFromFile Lib "gdiplus" (ByVal filename As String, image As Long) As GpStatus
  10. Public Declare Function GdipGetImageWidth Lib "gdiplus" (ByVal image As Long, Width As Long) As GpStatus
  11. Public Declare Function GdipGetImageHeight Lib "gdiplus" (ByVal image As Long, Height As Long) As GpStatus
  12. Public Declare Function GdipDisposeImage Lib "gdiplus" (ByVal image As Long) As GpStatus
  13. Public Declare Function GdiplusStartup Lib "gdiplus" (token As Long, _
  14. inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As GpStatus
  15. Public Declare Function GdipCreateFromHDC Lib "gdiplus" (ByVal hdc As Long, graphics As Long) As GpStatus
  16. Public Declare Function GdipDeleteGraphics Lib "gdiplus" (ByVal graphics As Long) As GpStatus
  17. Public Enum GpStatus
  18.     Ok = 0
  19.     GenericError = 1
  20.     InvalidParameter = 2
  21.     OutOfMemory = 3
  22.     ObjectBusy = 4
  23.     InsufficientBuffer = 5
  24.     NotImplemented = 6
  25.     Win32Error = 7
  26.     WrongState = 8
  27.     Aborted = 9
  28.     FileNotFound = 10
  29.     ValueOverflow = 11
  30.     AccessDenied = 12
  31.     UnknownImageFormat = 13
  32.     FontFamilyNotFound = 14
  33.     FontStyleNotFound = 15
  34.     NotTrueTypeFont = 16
  35.     UnsupportedGdiplusVersion = 17
  36.     GdiplusNotInitialized = 18
  37.     PropertyNotFound = 19
  38.     PropertyNotSupported = 20
  39. End Enum



Код формы:
  1.  
  2.  
  3. Option Explicit
  4. Private Const ULW_ALPHA = &H2
  5. Private Const DIB_RGB_COLORS As Long = 0
  6. Private Const AC_SRC_ALPHA As Long = &H1
  7. Private Const AC_SRC_OVER = &H0
  8. Private Const WS_EX_LAYERED = &H80000
  9. Private Const GWL_EXSTYLE As Long = -20
  10. Private Const HWND_TOPMOST As Long = -1
  11. Private Const SWP_NOMOVE As Long = &H2
  12. Private Const SWP_NOSIZE As Long = &H1
  13. Private Type BLENDFUNCTION
  14.     BlendOp As Byte
  15.     BlendFlags As Byte
  16.     SourceConstantAlpha As Byte
  17.     AlphaFormat As Byte
  18. End Type
  19. Private Type Size
  20.     cx As Long
  21.     cy As Long
  22. End Type
  23. Private Type POINTAPI
  24.     x As Long
  25.     y As Long
  26. End Type
  27. Private Type RGBQUAD
  28.     rgbBlue As Byte
  29.     rgbGreen As Byte
  30.     rgbRed As Byte
  31.     rgbReserved As Byte
  32. End Type
  33. Private Type BITMAPINFOHEADER
  34.     biSize As Long
  35.     biWidth As Long
  36.     biHeight As Long
  37.     biPlanes As Integer
  38.     biBitCount As Integer
  39.     biCompression As Long
  40.     biSizeImage As Long
  41.     biXPelsPerMeter As Long
  42.     biYPelsPerMeter As Long
  43.     biClrUsed As Long
  44.     biClrImportant As Long
  45. End Type
  46. Private Type BITMAPINFO
  47.     bmiHeader As BITMAPINFOHEADER
  48.     bmiColors As RGBQUAD
  49. End Type
  50. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd _
  51. As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  52. Private Declare Function UpdateLayeredWindow Lib "user32.dll" (ByVal hwnd As Long, _
  53. ByVal hdcDst As Long, pptDst As Any, psize As Any, ByVal hdcSrc As Long, pptSrc As Any, ByVal crKey As Long, ByRef pblend As BLENDFUNCTION, ByVal dwFlags As Long) As Long
  54. Private Declare Function CreateDIBSection Lib "gdi32.dll" (ByVal hdc As Long, _
  55. pBitmapInfo As BITMAPINFO, ByVal un As Long, ByRef lplpVoid As Any, _
  56. ByVal handle As Long, ByVal dw As Long) As Long
  57. Private Declare Function CreateCompatibleDC Lib "gdi32.dll" (ByVal hdc As Long) As Long
  58. Private Declare Function SelectObject Lib "gdi32.dll" (ByVal hdc As Long, _
  59. ByVal hObject As Long) As Long
  60. Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, _
  61. ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  62. Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" _
  63. (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  64. Private mDC As Long
  65. Private mainBitmap As Long
  66. Private blendFunc32bpp As BLENDFUNCTION
  67. Private token As Long
  68. Private oldBitmap As Long
  69. Private Declare Sub ReleaseCapture Lib "user32" ()
  70. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  71. (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wparam As Integer, ByVal iparam As Long) As Long
  72. Private Sub FormMove(lhWnd As Long)
  73.     ReleaseCapture
  74.     Call SendMessage(lhWnd, &HA1, 2, 0&)
  75. End Sub
  76. Private Sub Form_DblClick()
  77.     Unload Me
  78. End Sub
  79. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  80.     If Button = 1 Then FormMove hwnd
  81. End Sub
  82. Private Sub Form_Initialize()
  83. Dim GpInput As GdiplusStartupInput
  84.     GpInput.GdiplusVersion = 1
  85.     If GdiplusStartup(token, GpInput) <> 0 Then
  86.         MsgBox "Ошибка GDI+!", vbCritical
  87.         Unload Me
  88.     End If
  89.     MakeTrans App.Path & "\pngres.png" 'pngres.png - скин формы
  90. End Sub
  91. '
  92. Private Function MakeTrans(pngPath As String) As Boolean
  93. Dim tempBI As BITMAPINFO
  94. Dim lngHeight As Long
  95. Dim lngWidth As Long
  96. Dim curWinLong As Long
  97. Dim img As Long
  98. Dim graphics As Long
  99. Dim winSize As Size
  100. Dim srcPoint As POINTAPI
  101.     With tempBI.bmiHeader
  102.         .biSize = Len(tempBI.bmiHeader)
  103.         .biBitCount = 32
  104.         .biHeight = ScaleHeight 'Не забываем ставить у формы ScaleMode = vbPixels,
  105.         .biWidth = ScaleWidth   'иначе будет *жрать* память нещадно :)
  106.         .biPlanes = 1
  107.         .biSizeImage = .biWidth * .biHeight * (.biBitCount / 8)
  108.     End With
  109.         mDC = CreateCompatibleDC(hdc)
  110.         mainBitmap = CreateDIBSection(mDC, tempBI, DIB_RGB_COLORS, ByVal 0, 0, 0)
  111.         oldBitmap = SelectObject(mDC, mainBitmap)
  112.         Call GdipCreateFromHDC(mDC, graphics)
  113.         Call GdipLoadImageFromFile(StrConv(pngPath, vbUnicode), img)
  114.         Call GdipGetImageHeight(img, lngHeight)
  115.         Call GdipGetImageWidth(img, lngWidth)
  116.         Call GdipDrawImageRect(graphics, img, 0, 0, lngWidth, lngHeight)
  117.         curWinLong = GetWindowLong(hwnd, GWL_EXSTYLE)
  118.         SetWindowLong hwnd, GWL_EXSTYLE, curWinLong Or WS_EX_LAYERED
  119.         SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
  120.         srcPoint.x = 0
  121.         srcPoint.y = 0
  122.         winSize.cx = ScaleWidth
  123.         winSize.cy = ScaleHeight
  124.     With blendFunc32bpp
  125.         .AlphaFormat = AC_SRC_ALPHA
  126.         .BlendFlags = 0
  127.         .BlendOp = AC_SRC_OVER
  128.         .SourceConstantAlpha = 255
  129.     End With
  130. Call GdipDisposeImage(img)
  131. Call GdipDeleteGraphics(graphics)
  132. Call UpdateLayeredWindow(hwnd, hdc, ByVal 0&, winSize, mDC, srcPoint, 0, blendFunc32bpp, ULW_ALPHA)
  133. End Function
  134.  




Применение васи:
  1.  
  2. Call MakeTrans (App.Path & "\skin.png")

Ответить

Страница: 1 |

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



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