Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   Статья: Как украшать свои программы в среде программирования Visual Basic. (https://forum.antichat.xyz/showthread.php?t=24470)

Ad 26.09.2006 11:46

Статья: Как украшать свои программы в среде программирования Visual Basic.
 
Как украшать свои программы в среде программирования Visual Basic.

Вот решил написать статейку о том как украшать свои программы в среде Visual Basic.


Делаем приклеивание дочернего окна к родительскому. Это финча в основном используется мною (да и программы, которые я видел) для меню опций, очень удобно!
Вот как это будет выглядеть:
http://img247.imageshack.us/img247/3...ochkrodjh9.gif

Дополнительные модули скачать

Теперь сам код приделывания окон

Для родительского окна
PHP код:

 Private Sub Form_Load()
   
' Hook into messages for this window.
   Call HookWindow(Me.hWnd, Me)
   
   ' 
Createload, and hook messages for sub form.
   
Set m_Sub = New Form2
   Load m_Sub
   Call HookWindow
(m_Sub.hWndMe)
End Sub

Private Sub Form_Unload(Cancel As Integer)
   
' Always unhook before unloading!
   Call UnhookWindow(m_Sub.hWnd)
   Unload m_Sub
   Set m_Sub = Nothing
   
   ' 
Unhook this (mainone too!
   
Call UnhookWindow(Me.hWnd)
End Sub

Private Function IMessageSink_WindowProc(hWnd As Longmsg As Longwp As Longlp As Long) As Long
   
Static rMain As RECT
   
Static rSub As RECT
   Dim Result 
As Long
   
   Select 
Case hWnd
      
Case Me.hWnd
         Select 
Case msg
            
Case WM_MOVEWM_MOVINGWM_SIZE
               
' Move subform to desired position.
               If Not (m_Sub Is Nothing) Then
                  ' 
Retrieve coordinates for both windows.
                  
Call GetWindowRect(hWndrMain)
                  
Call GetWindowRect(m_Sub.hWndrSub)
                  
' Position subform appropriately.
                  Call MoveWindow(m_Sub.hWnd, rMain.Right, rMain.Top, rSub.Right - rSub.Left, rMain.Bottom - rMain.Top, True)
                  ' 
Store new position of subform.
                  
Call GetWindowRect(m_Sub.hWndrSub)
               
End If
               
Result InvokeWindowProc(hWndmsgwplp)
               
            Case Else
               
' Pass along to default window procedure.
               Result = InvokeWindowProc(hWnd, msg, wp, lp)
         End Select
      
      Case m_Sub.hWnd
         Select Case msg
            Case WM_ACTIVATE
               ' 
Have main form retain active titlebar.
               
Result InvokeWindowProc(hWndmsgwplp)
               
Call SendMessage(Me.hWndWM_NCACTIVATE1ByVal 0&)
               
            Case 
WM_MOVING
               
' Copy stored position of subform to the position
               ' 
the user is trying to drag it to.
               
Call CopyMemory(ByVal lprSubLen(rSub))
               
Result 1
               
            
Case Else
               
' Pass along to default window procedure.
               Result = InvokeWindowProc(hWnd, msg, wp, lp)
         End Select
      
      End Select
   ' 
Return desired result code to Windows.
   
IMessageSink_WindowProc Result
End 
Function

Private 
Sub m_Sub_Hide()
   
' User clicked [X] on subform.
   Check1.Value = False
End Sub 

Для дочернего
PHP код:

 Private Sub Form_QueryUnload(Cancel As IntegerUnloadMode As Integer)
   If 
UnloadMode vbFormControlMenu Then
      
' Notify parent that user clicked [X].
      Cancel = True
      RaiseEvent Hide
   End If
End Sub 


Следующая финча. Создаем кнопки в виде пилюлек.
Дополнительные модули скачать

Вот так это выглядит:
http://img208.imageshack.us/img208/2130/pilulipi3.gif

Ну и программный код элементарный:
Для мыла: Shell "start mailto: mail@mail.ru"

Ну и для нашего Античата:
Shell "start http://www.antichat.ru"

Выход пишется так: end

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

Дополнительные модули скачать

Выглядит это так:
http://img208.imageshack.us/img208/3489/progressje4.gif
Ну и программный код:
PHP код:

 Private Sub Timer1_Timer()

ProgBar1.Value ProgBar1.Value 1

If ProgBar1.Value 100 Then
ProgBar1
.Clear
  
End 
If

Form1.Caption ProgBar1.Value "%" "icq 996757"
End Sub 

Ну пожалуй хватит насиловать ваш мозг. Если у вас возникнут проблемы пиши здесь, если не будет получатся то я выложу все исходники и сурсы.
Спасибо за внимание
(с) d1n 2006.

em00s7 26.09.2006 12:34

Visual Basic это не гут

Ad 26.09.2006 13:05

em00s7
Зря так говоришь, знаешь бота от System'a? Он написан на Visual Basic! Да и не хуже он Delphi!

bul.666 26.09.2006 14:57

А вот прогресс бар зачем? ) Чтобы красивее выглядить? А таймер с каким интервалом стоит? В одну секунду? Тоесть надо ждать 100 секунд для загрузки проги? Ваще это нафиг не нуна...

Ch3ck 26.09.2006 15:46

Да,статья нормальная прочитал вроде бы...
Кстати, если надо то смогу написать тоже небольшую статью, как сделать чтобы программы на делфи были в стиле WindowsXP (кто не знает они имеют стандартный вид) :cool:

Ad 26.09.2006 17:02

Цитата:

Сообщение от Dr.Check
Да,статья нормальная прочитал вроде бы...
Кстати, если надо то смогу написать тоже небольшую статью, как сделать чтобы программы на делфи были в стиле WindowsXP (кто не знает они имеют стандартный вид)

Я тоже хотел сюда запостить оформление под стиль XP только на VB, но компоненты много весят ажно 190 кб я их залить не смогу проблемы с нетом. Да и разберется не каждый начнём с легкого все будет. Намек ясен? :)
bul.666
Интервал по стандарту. Попробуй сделать по статье и увидишь. Видно ты не очень шариш в этом (без обид) заргузка идет в течении 15 секунд.

Ch3ck 26.09.2006 17:28

Цитата:

но компоненты много весят ажно 190 кб
Странно, мне не надо никаких компонентов. Просто создать .xml файл с некоторым содержимым, да + пару настроек в самом Делфи сделать.

DIAgen 26.09.2006 19:47

Не знаю уже как 2 года не программер на Vb, и не хочу к нему возращаться, и мне кажется что Vb это уже Bad

Ad 27.09.2006 09:23

DIAgen
Ну как говорится твоё право. Дельфи и Визуал оба по своему хороши.
Dr.Check
Ну ты пишешь на стандартных компонентах, а я нет там dll итд глянь хоть один архив поймешь о чём я :)

em00s7 27.09.2006 10:39

Цитата:

-1

Статья: Как украшать св...
26.09.2006 13:55
Mobile
Visual Basic гуд! За флейм!
хахах мобаил ты сам то его знаешь ?? ты вообще хоть какой-нить язык знаеш?)) бля ты меня порожаешь не зная ставить - ......


Время: 17:05