
- •2014 Содержание
- •1. Назначение и область применения
- •2. Технические характеристики
- •2.1. Постановка задачи на разработку программы
- •2.2. Описание алгоритма и функционирования программы
- •2.2.1. Описание алгоритма работы программы
- •2.2.2. Алгоритм функционирования программы
- •2.3. Описание и обоснование выбора метода организации входных и выходных данных
- •3. Листинг программы
- •3.1. Листинг файла rsrc.Rc
- •3.2. Листинг файла qikpad.Asm
- •3.3. Листинг файла qikpad.Inc
- •3.4. Листинг файла toolbar.Asm
- •3.5. Листинг файла tbmacros.Asm
- •3.6. Листинг файла statusbr.Asm
- •3.7. Листинг файла filedlgs.Asm
- •3.8 Листинг make-файла
- •4. Результаты моделирования программы на эвм
3.3. Листинг файла qikpad.Inc
include \MASM32\INCLUDE\windows.inc
include \MASM32\INCLUDE\masm32.inc
include \MASM32\INCLUDE\gdi32.inc
include \MASM32\INCLUDE\user32.inc
include \MASM32\INCLUDE\kernel32.inc
include \MASM32\INCLUDE\Comctl32.inc
include \MASM32\INCLUDE\comdlg32.inc
include \MASM32\INCLUDE\shell32.inc
include \MASM32\INCLUDE\oleaut32.inc
includelib \MASM32\LIB\masm32.lib
includelib \MASM32\LIB\gdi32.lib
includelib \MASM32\LIB\user32.lib
includelib \MASM32\LIB\kernel32.lib
includelib \MASM32\LIB\Comctl32.lib
includelib \MASM32\LIB\comdlg32.lib
includelib \MASM32\LIB\shell32.lib
includelib \MASM32\LIB\oleaut32.lib
WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
TopXY PROTO :DWORD,:DWORD
FillBuffer PROTO :DWORD,:DWORD,:BYTE
Paint_Proc PROTO :DWORD,:DWORD
EditML PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
Read_File_In PROTO :DWORD,:DWORD
Confirmation PROTO :DWORD
Write_2_Disk PROTO :DWORD
SaveFileAs PROTO
SaveFile PROTO
WordWrap PROTO
EditProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
About PROTO
wsprintfA PROTO C :DWORD,:VARARG
wsprintf equ <wsprintfA>
szText MACRO Name, Text:VARARG
LOCAL lbl
jmp lbl
Name db Text,0
lbl:
ENDM
m2m MACRO M1, M2
push M2
pop M1
ENDM
return MACRO arg
mov eax, arg
ret
ENDM
.data
CommandLine dd 0
hWnd dd 0
hInstance dd 0
hIcon dd 0
hEdit dd 0
WrapFlag dd 0
lpEditProc dd 0
szDisplayName db "QikPad",0
szUntitled db "Untitled",0
szOpenedAt db "File opened at ",0
szSavedAt db "File saved at ",0
bytes db " bytes",0
sizeBuffer db 16 dup (?)
PthBuffer db 128 dup (?)
include toolbar.asm
include filedlgs.asm
include statusbr.asm
3.4. Листинг файла toolbar.Asm
Do_ToolBar PROTO :DWORD
SetBmpColor PROTO :DWORD
include tbmacros.asm
.data
hTbBmp dd 0
hToolBar dd 0
.code
; ########################################################################
Do_ToolBar proc hWin :DWORD
LOCAL bSize :DWORD
LOCAL tbab :TBADDBITMAP
LOCAL tbb :TBBUTTON
invoke LoadBitmap,hInstance,750
mov hTbBmp,eax
Create_Tool_Bar 16, 16
TBextraData
TBblank
TBbutton 6, 50
TBbutton 7, 51
TBbutton 8, 52
TBblank
TBbutton 0, 53
TBbutton 1, 54
TBbutton 2, 55
TBbutton 3, 56
ret
Do_ToolBar endp
; ########################################################################
SetBmpColor proc hBitmap:DWORD
LOCAL mDC :DWORD
LOCAL hBrush :DWORD
LOCAL hOldBmp :DWORD
LOCAL hReturn :DWORD
LOCAL hOldBrush :DWORD
invoke CreateCompatibleDC,NULL
mov mDC,eax
invoke SelectObject,mDC,hBitmap
mov hOldBmp,eax
invoke GetSysColor,COLOR_BTNFACE
invoke CreateSolidBrush,eax
mov hBrush,eax
invoke SelectObject,mDC,hBrush
mov hOldBrush,eax
invoke GetPixel,mDC,1,1
invoke ExtFloodFill,mDC,1,1,eax,FLOODFILLSURFACE
invoke SelectObject,mDC,hOldBrush
invoke DeleteObject,hBrush
invoke SelectObject,mDC,hBitmap
mov hReturn,eax
invoke DeleteDC,mDC
mov eax,hReturn
ret
SetBmpColor endp