Вывод на экран текущий каталог в графическом режимеРефераты >> Программирование и компьютеры >> Вывод на экран текущий каталог в графическом режиме
hWnd : определяет дескриптор окна, где клиентская область должна быть прокручена.
XAmount: определяет состав модуля для горизонтальной прокрутки.
YAmount: определяет состав модуля для вертикальной прокрутки.
lpRect: указатель на структуру RECT , определяющую часть области клиента для прокрутки. Если этот параметр равен 0, то прокручивается вся клиентская область
lpClipRect: указатель на структуру RECT , содержащую координаты прямоугольника отсечения.
Если функция выполнилась правильно, то она возвращает значение, отличное от ноля.
SetScrollPos - функция, которая устанавливает позицию бегунка в указанной полосе прокрутки и изменяет эту позицию.
Параметры:
hWnd : идентифицирует полосу прокрутки или окно со стандартной полосой прокрутки, в зависимости от значения параметра nBar.
nBar: определяет полосу прокрутки.
Этот параметр может принимать одно из следующих значений:
- SB_CTL - устанавливает позицию бегунка в управлении полосы прокрутки, hWnd - дискриптор полосы прокрутки.
- SB_GORS - устанавливает позицию бегунка в стандартной горизонтальной полосе прокрутки.
- SB_VERT - устанавливает позицию бегунка в стандартной вертикальной полосе прокрутки.
nPos: параметр, определяющий новую позицию бегунка. Она должна быть в пределах прокручиваемого диапазона.
bRedraw: параметр, определяющий оттянута ли повторно полоса прокрутки, для того чтобы отобразить новую позицию бегунка. Если этот параметр истина, то полоса прокрутки повторно оттянута.
Если функция неправильно завершена, то возвращается ноль.
1. p486 ; эта директива разрешает транслятору
; обрабатывать команды процессора i486
2. jumps ; транслятор автоматически преобразует
; команду условной передачи управления в комбинацию
; условной и безусловной команд, если условная команда в
; cилу ограниченности области своего действия не
; обеспечивает передачу управления по нужному адресу
3. model flat,STDCALL ; выбирается модель памяти для 32-
; разрядного программирования и правила
;передачи параметров функциям STDCALL,
; далее действующие по умолчанию
4. include win32.inc ; файл, содержащий описания структур
; данных и констант
5. L equ <LARGE> ; последовательности символов LARGE,
; являющейся именем операции,
; объявляющей следующий за ней операнд ; 32-разрядным, присваивается имя L
6. extrn ginPaint:PROC ; описание импортируемых из
;Windows функций
7. extrn CreateWindowExA:PROC
8. extrn DefWindowProcA:PROC
9. extrn DispatchMessageA:PROC
10. extrn EndPaint:PROC
11. extrn ExitProcess:PROC
12. extrn GetMessageA:PROC
13. extrn GetModuleHandleA:PROC
14. extrn LoadCursorA:PROC
15. extrn LoadIconA:PROC
16. extrn PostQuitMessage:PROC
17. extrn RegisterClassA:PROC
18. extrn ShowWindow:PROC
19. extrn TextOutA:PROC
20. extrn UpdateWindow:PROC
21. extrn GetTextMetricsA:PROC
22. extrn SetCurrentDirectoryA:PROC
23. extrn FindFirstFileA:PROC
24. extrn FindNextFileA:PROC
25. extrn FindClose:PROC
26. extrn SetScrollPos:PROC
27. extrn InvalidateRect:PROC
28. extrn GetClientRect:PROC
29. extrn ScrollWindow:PROC
30. extrn GetDC:PROC
31. extrn ReleaseDC:PROC
32. extrn SetScrollRange:PROC
33. extrn TranslateMessage:PROC
34. .data ;предопределенное имя,
;означающее начало сегмента данных
35. hFindFile dd 0
36. newhwnd dd 0
37. wc WNDCLASS <?>
38. qq1 db '@@@@'
39. lppaint PAINTSTRUCT <?>
40. qq2 db '@@@@'
41. msg MSGSTRUCT <?>
42. tm TEXTMETRIC <?>
43. rc RECT <?>
44. charht dd 0
45. hInst dd 0
46. fl dw 0
47. szTitleName db 'Это курсовой',0
48. szClassName db 'ASMCLASS32',0
49. Buffer db 'Помни о порядке передачи параметров функции!',0
50. buf_v db 260 dup (0)
51. num dd 0
52. ;##########################
53. lpPathName dd 0
54. szP db 0
55. w32fd WIN32_FIND_DATA <?>
56. lpFileName dd 0
57. fn db "*.*",0
58. ;##########################
59. nVertDifference dd 0
60. nVertPosition dd 0
61. cyStep dd 0
62. nFirst dd 0
63. nLast dd 0
64. cyMax dd 0
65. cyPos dd 0
66. cory dd 5
67. count dd 0
68. py dd 0
69. .code ;предопределенное имя, означающее
;начало сегмента кода
70. start:
71. push L 0
72. call GetModuleHandleA ;возвращает базовый адрес модуля,
;указывающий, куда был отображен в адресном
; пространстве процесса EXE- или DLL файла
73. mov [hInst], eax ; результат выполнения функции сохраняется в качестве переменной hInst
74. reg_class:
75. ;************************************************
;инициализация структуры WNDCLASS
76. mov [wc.clsStyle], CS_HREDRAW + CS_VREDRAW ; стиль класса
77. mov [wc.clsLpfnWndProc], offset WndProc ;адрес оконной процедуры
78. mov wc.clsCbClsExtra], 0 ;определяет дополнительное число
; байтов для структуры класса окна,
; которые система резервирует
;в служебной памяти для всех окон
; этого класса
79. mov [wc.clsCbWndExtra], 0 ; задает в байтах объем памяти,
; резервируемой системой в конце
; каждой такой структуры каждого окна
; данного класса
80. mov eax, [hInst]
81. mov [wc.clsHInstance], eax ; содержит базовый адрес данного
;EXE- файла, полученный с помощью
;функции GetModuleHandle
82. call LoadIconA, 0, IDI_APPLICATION ; заданная по умолчанию
; пиктограмма
83. mov [wc.clsHIcon], eax
84. call LoadCursorA, 0 ,IDC_ARROW ; стандартная стрелка курсора
85. mov [wc.clsHCursor], eax
86. mov [wc.clsHbrBackground],COLOR_WINDOW +1
87. mov dword ptr [wc.clsLpszMenuName], 0
88. mov dword ptr [wc.clsLpszClassName], offset szClassName
89. call RegisterClassA, offset wc ; регистрирует класс окна,
; атрибуты которого определены ;в структуре WNDCLASS
90. call CreateWindowExA, 0,offset szClassName,offset szTitleName, \
; создает окно, имеющее указанный тип
; и принадлежащее указанному классу
91. WS_OVERLAPPEDWINDOW OR WS_VSCROLL,CW_USEDEFAULT, \
92. CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,0,0, \
93. [hInst], 0
94. mov [newhwnd], eax
95. call ShowWindow, [newhwnd], SW_SHOWNORMAL ; показывает каким
; образом должно быть
; показано окно
96. call UpdateWindow, [newhwnd] ; обновляет изображение
; окна, посылая
;сообщение WM_PAINT
; оконной процедуре, если
; область модификации
; окна не пуста
97. msg_loop:
98. call GetMessageA, offset msg, 0, 0, 0 ;считывает сообщение
; очереди сообщений
; прикладной задачи
99 if eax!= 0
100. call DispatchMessageA, offset msg ; передает сообщение
; оконной процедуре
101. call TranslateMessage, offset msg
102. jmp msg_loop
103. ; .endif
104. call ExitProcess, [msg.msWPARAM] ;
105. ;*************************************************