purebasic.info

PureBasic forum
Текущее время: Чт янв 18, 2018 3:02 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Screen Saver preview
СообщениеДобавлено: Ср дек 12, 2007 10:22 am 
Не в сети
док

Зарегистрирован: Вт сен 18, 2007 9:16 am
Сообщений: 162
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
пример из кодархива НЕ закрывает корректно превью скринсейвера (Свойства экрана - Заставка). Вот мой вариант кода

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Procedure PreviewAutoDestruction(window, message, wParam, lParam) 
   Shared WM_DestroyPreview    
   Select message
      Case #WM_CLOSE
        DestroyWindow_(window)
        LogWriteString("PREVIEW CLOSE")
        End
      Case WM_DestroyPreview
        LogWriteString("PREVIEW AUTO DESTRUCTION")  
        End
   EndSelect
   ProcedureReturn CallWindowProc_(GetProp_(window,"PreviewAutoDestruction"),window,message,wParam,lParam)
EndProcedure
 
Procedure Preview(preview)
   UseGadgetList(preview)
      GetClientRect_(preview,@rc.rect)    
      CreateImage(1,rc\right,rc\bottom)
         StartDrawing(ImageOutput(1))
            For y=0 To ImageHeight(1)
               Line(0,y,ImageWidth(1),1,RGB($FF*y/ImageHeight(1),$CC*y/ImageHeight(1),0))
            Next
         StopDrawing()
      hEmpty = ImageGadget(1,0,0,0,0,ImageID(1))  
   CloseGadgetList()
 
   Shared WM_DestroyPreview
   WM_DestroyPreview=RegisterWindowMessage_(@"PREVIEW AUTO DESTRUCTION")
   SendMessage_(#HWND_BROADCAST,WM_DestroyPreview,0,0)    
   SetProp_(hEmpty,"PreviewAutoDestruction",SetWindowLong_(hEmpty,#GWL_WNDPROC,@PreviewAutoDestruction()))
   
   Repeat
      WaitWindowEvent()
   ForEver    
EndProcedure
 
FirstParam.s    =ProgramParameter()
command.s       =LCase(Left(ReplaceString(FirstParam,"-","/"),2))
ParentWindow.l  =Val(StringField(FirstParam,2,":")) | Val(ProgramParameter())
 
LogInit("c:\sslog.txt")
       
Select command      
   Case "/p"
      Preview(ParentWindow)
   Case "/c"
      ;Config(ParentWindow)      
   Default
      ;Saver()
EndSelect


_________________
Люди!! Уважайте друг друга!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB