Вывод на экран текущий каталог в графическом режиме
Рефераты >> Программирование и компьютеры >> Вывод на экран текущий каталог в графическом режиме

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. ;*************************************************


Страница: