Сдвинуть экран, как экранная лупа: как вернуть значки?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Сдвинуть экран, как экранная лупа: как вернуть значки?

Сообщение arthur2 » 31.01.2009 (Сб) 18:00

Написал вот такой код:
Код: Выделить всё
Option Explicit
  Const ABM_NEW = &H0
  Const ABM_REMOVE = &H1
  Const ABM_SETPOS = &H3
 
  Const ABE_LEFT = 0
  Const ABE_TOP = 1
  Const ABE_RIGHT = 2
  Const ABE_BOTTOM = 3

  Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
  End Type
 
  Private Type APPBARDATA
    cbSize As Long
    hwnd As Long
    uCallbackMessage As Long
    uEdge As Long
    rc As RECT
    lParam As Long
  End Type

Private Declare Function SHAppBarMessage _
                Lib "shell32.dll" _
                (ByVal dwMessage As Long, pData As APPBARDATA) As Long

Private Sub Form_Load()

  Dim abd As APPBARDATA
 
  abd.cbSize = Len(abd)
  abd.hwnd = hwnd
  SHAppBarMessage ABM_NEW, abd 'добавляем себя в качестве новой панели инструментов.
  abd.rc.Top = Screen.Height / Screen.TwipsPerPixelY - 300 'устанавливаем якобы свою макушку
 
  abd.uEdge = ABE_BOTTOM 'сдвигать будем снизу
 
  SHAppBarMessage ABM_SETPOS, abd
 
End Sub

Private Sub Form_Unload(Cancel As Integer)
 
  Dim abd As APPBARDATA
 
  abd.cbSize = Len(abd)
  abd.hwnd = hwnd
  SHAppBarMessage ABM_REMOVE, abd

End Sub

Код сдвигает рабочую область экрана снизу (система думает, что появилась новая панель инструментов рабочего стола).

Всё отлично работает, но вот только одна проблема: код сдвигает иконки на рабочем столе, а назад не возвращает :(

Как, кстати, и виндовская лупа, и любые родные виндовские панели. А как бы придумать, чтобы иконки возвращались?
Вложения
сдвиг экрана.zip
сдвинуть рабочую область экрана снизу
(1.81 Кб) Скачиваний: 99
Артур
 
   

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 40

    TopList  
cron