uk8amk писал(а):В стандартной комплектации VB6 элементы управления Vscrollbar и Hscrollbar не реагируют на вращение колесика мышки. Видимо тогда таких мышей еще не придумали. Но сейчас уже трудно встретить грызуна без колесика и соответственно встает вопрос как сделать или где взять?
Хакер писал(а):А зачем тебе скроллбары, если ты ничего не собираешься скроллить?
jangle писал(а):А можно просто в модуль добавить обработчик, пример в аттаче
Хакер писал(а):"Сойус нирушим ,их— —резь публик свОБОДныъх", что "своё" можешь предложить?
uk8amk писал(а):О, а этот пример кажется то что мне и надо. Огромное спасибо!
Хакер писал(а):В смысле "своё"? Что своё можно предложить, когда что-то неправильно? Например, когда видешь фразу "Сойус нирушим ,их— —резь публик свОБОДныъх", что "своё" можешь предложить?
uk8amk писал(а): Все равно прога фриварная и для себя.
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Call UnHook(Me.hwnd)
ShutdownWinIo 'Задушить драйвер ввода-вывода
End
End Sub
У кого какие идеи по этому поводу?
ExitProcess is the preferred method of ending a process. This function provides a clean process shutdown. This includes calling the entry-point function of all attached dynamic-link libraries (DLLs) with a value indicating that the process is detaching from the DLL. If a process terminates by calling TerminateProcess, the DLLs that the process is attached to are not notified of the process termination.
Хакер писал(а):Что значит "могут остаться объекты"? У объектов нет воли, инстинкта самосохранения, желания выжить. Объекты создаются и уничтожаются по определённым правилам. При написании программ программист в процедуре, ответственной за завершение приложения, должен сделать необходимые действия для освобождения занятых ресурсов. И никакой End не нужен.
При правильном подходе, программа не будет продолжать свое выполнение.uk8amk писал(а):Ну например загрузили форму frmMain. Затем вызвали frmSlave и зашли в какой-то цикл. Пользователь желая завершить работу программы нажимает на frmMain кнопочку Закрыть(та что с крестиком). Получается: прибиваем frmMain, а другая форма остается в памяти и фактически программа продолжает свое выполнение.
Если ему надо просто закрыть приложения и все используемые им ресурсы, ExitProcess - единственно верный путь.
Об этом кстати написано в Microsoft® Win32® Programmer's Reference
Windows сама уничтожит всю цепочку объектов
выгрузит DLL, и вернет память операционной системе.
Ну например загрузили форму frmMain. Затем вызвали frmSlave и зашли в какой-то цикл. Пользователь желая завершить работу программы нажимает на frmMain кнопочку Закрыть(та что с крестиком). Получается: прибиваем frmMain, а другая форма остается в памяти и фактически программа продолжает свое выполнение
С ExitProcess надо попробовать. Для нее никаких деклараций не требуется?
К сожалению у меня уровень не такой высокий, поэтому пишу код можно сказать через одно место. Но иногда он несмотря ни на что работаетViper писал(а):При правильном подходе, программа не будет продолжать свое выполнение.
Если не затруднит, то пожалуйста выложите декларацию.Хакер писал(а):Ясно . Декларации потребуются.
API-Guide 3.7 писал(а):Declare Sub ExitProcess Lib "kernel32" Alias "ExitProcess" (ByVal uExitCode As Long)
· uExitCode
Specifies the exit code for the process, and for all threads that are terminated as a result of this call. Use the GetExitCodeProcess function to retrieve the process’s exit value. Use the GetExitCodeThread function to retrieve a thread’s exit value.
Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'end this process
ExitProcess GetExitCodeProcess(GetCurrentProcess, 0)
End Sub
Если не затруднит, то пожалуйста выложите декларацию.
Хакер писал(а):"Завершение процесса" не то же самое, что "завершение приложения". Это вещи разных порядков. Завершение процесса — это последняя стадия более сложной процедуры завершения приложения.
Размечтался. Прямо таки применит весь свой искусственный интеллект, пройдётся по всей памяти, отыщит в ней указатели на интерфейсы COM-объектов, для каждого вызовет метод Release. Ага-ага, щас.
Приложение - это объект ядра называемый "процессом"
Это у Рихтера так написано, мол не вызывайте ExitProcess
это не позволит корректно вызваться сишным диструкторам.
После вызова ExitProcess, ядро гарантирует полное освобождение всех ресурсов, и сбрасывание счетчиков объектов в ноль.
Для примера, попробуй написать приложение, которое оставит после вызова ExitProcess какой-либо объект не разрушенным, это проосто невозможно
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20