Мегаобучалка Главная | О нас | Обратная связь


Показать окно, установить статус показа. Если окно перед этим было видимо, возвращается значение - не 0. Если окно перед этим было не видимо, возвращаемое значение - 0.



2020-02-04 159 Обсуждений (0)
Показать окно, установить статус показа. Если окно перед этим было видимо, возвращается значение - не 0. Если окно перед этим было не видимо, возвращаемое значение - 0. 0.00 из 5.00 0 оценок




Синтаксис:ShowWindow (hWnd, // дескриптор окнаnCmdShow // состояние показа окна

);

UpdateWindow

Функция обновляет рабочую область заданного окна, отправляя сообщение WM_PAINT окну, если регион обновления окна не пуст. Функция отправляет сообщение WM_PAINT непосредственно оконной процедуре указанного окна, обходя очередь приложения. Если регион обновления пуст, никакое сообщение не отправляется. Если функция завершается успешно, возвращаемое значение - не 0. Если функция завершается ошибкой, возвращаемое значение - 0.

Синтаксис:

BOOL UpdateWindow (

HWND hWnd // Дескриптор окна.

);

GetMessage

Получить очередное сообщение из очереди сообщений данного приложения.

Синтаксис:

BOOL GetMessage (

LPMSG lpMsg, // указатель на структуру

HWND hWnd, // указатель окна чьи сообщения нужно обрабатывать

UINT wMsgFilterMin, // номер мимимального сообщения для выборки

UINT wMsgFilterMax // номер максимального сообщения для выборки

);

TranslateMessage

Транслировать клавиатурные сообщения в ASCII-коды. Если сообщение переведено (то есть символьное сообщение помещено в очереди сообщений потока), величина возвращаемого значения не 0. Если сообщение не переведено (то есть символьное сообщение не помещено в очереди сообщений потока), величина возвращаемого значения - 0.

Синтаксис:

BOOL TranslateMessage (

const MSG* lpMsg // Указатель на структуру MSG, которая содержит информацию о сообщении извлеченную из очереди сообщений вызывающего потока при помощи использования функции GetMessage.

);

DispatchMessage

Вернуть управление Windows с передачей сообщения предназначенному окну. Величина возвращаемого значения определяется значением, которое возвращает оконная процедура. Несмотря на то, что это значение зависит от отправляемого сообщения, возвращаемое значение, как правило, игнорируется.

Синтаксис:DispatchMessage (MSG *lpmsg // указатель на структуру с сообщением

);

SendMessage

Функция отправляет заданное сообщение окну или окнам. Функция вызывает оконную процедуру для заданного окна и не возвращает значение до тех пор, пока оконная процедура не обработает сообщение. Чтобы отправить сообщение и возвратить немедленно значение, используйте функцию SendMessageCallback или SendNotifyMessage. Чтобы поместить сообщение в очередь сообщений потока и возвратить немедленно значение, используйте функцию PostMessage или PostThreadMessage.

Синтаксис

LRESULT SendMessage (

HWND hWnd, // Дескриптор окна

UINT Msg, // Определяет сообщение, которое будет отправлено

WPARAM wParam, // Определяет дополнительную конкретизирующую сообщение информацию

LPARAM lParam // Определяет дополнительную конкретизирующую сообщение информацию

);

SetWindowText

Функция изменяет текст заголовка заданного окна (если таковой имеется). Если определяемое окно - орган управления, то изменяется его текст. Однако SetWindowText не может изменить текст органа управления в другом приложении.

СинтаксисSetWindowText (hWnd, // дескриптор окна или элемента управленияlpString // адрес строчки

);

SetFocus

Функция устанавливает фокус клавиатуры в заданном окне. Окно должно быть связано с очередью сообщений вызывающего потока.

СинтаксисSetFocus

(HWND hWnd // дескриптор окна, которому передается фокус

);

SetWindowLong

Функция заменяет атрибуты указанного окна. Функция также устанавливает и 32-разрядное (long) значение при заданном смещении в дополнительную память окна.

Синтаксис

LONG SetWindowLong (

HWND hWnd, // Дескриптор окна

int nIndex, // Определяет отсчитываемое от нуля смещение устанавливаемого значения

LONG dwNewLong // Устанавливает заменяемое значение

);

MoveWindow

Функция изменяет позицию и габариты определяемого окна. Для окна верхнего уровня, позиция и габариты отсчитываются относительно левого верхнего угла экрана. Для дочернего окна, они - относительно левого верхнего угла рабочей области родительского окна.

СинтаксисMoveWindow (hWnd, // дескриптор окнаx, // позиция по горизонталиy, // позиция по вертикали

int nWidth, // ширинаnHeight, // высота

BOOL bRepaint // флажок перекраски

);

Функция возвращает координаты клиентской области окна. Клиентские координаты определяют верхний левый и правый нижний углы клиентской области. Поскольку клиентские координаты относительны левому углу клиентской области окна, то координаты верхнего левого угла является (0, 0).

BOOL GetClientRect (hWnd, // дескриптор окна

LPRECT lpRect // адрес структуры для клиентских координат

);

Функция указывает системе, что поток сделал запрос на то, чтобы завершить свою работу (выйти). Это обычно используется в ответ на сообщение WM_DESTROY.

СинтаксисPostQuitMessage (nExitCode // Определяет код завершения прикладной программы

);

Функция вызывается оконной процедурой по умолчанию, чтобы обеспечить обработку по умолчанию любого сообщения окна, которые приложение не обрабатывает. Эта функция гарантирует то, что обрабатывается каждое сообщение. Функция DefWindowProc вызывается с теми же самыми параметрами, принятыми оконной процедурой.

Синтаксис

LRESULT DefWindowProc (

HWND hWnd, // Дескриптор оконной процедуры

UINT Msg, // сообщениеwParam, lParam

);

CreateFile

Функция создает или открывает каталог, физический диск, том, буфер консоли, коммуникационный ресурс, почтовый слот или именованный канал. Если функция завершается успешно, возвращаемое значение - открытый дескриптор заданного файла. Если функция завершается с ошибкой, возвращаемое значение - INVALID_HANDLE_VALUE.

Синтаксис:

HANDLE CreateFile (

LPCTSTR lpFileName, // имя файла - указатель на символьную строку с нулем в конце, устанавливающую имя объекта, который создается или открываться

DWORD dwDesiredAccess, // режим доступа (чтение, запись или то и другое)

DWORD dwShareMode, // режим совместного доступа (чтение, запись, оба или никакого действия)

LPSECURITY_ATTRIBUTES lpSecurityAttributes, // Указатель на структуру SECURITY_ATTRIBUTES, которая устанавливает может ли возвращенный дескриптор быть унаследован дочерними процессами

DWORD dwCreationDisposition, // как действовать

DWORD dwFlagsAndAttributes, // атрибуты и флажки файла

HANDLE hTemplateFile // Дескриптор файла шаблона с правом доступа GENERIC_READ

);

GetFileSize

Функция извлекает размер указанного файла. Размер файла, который может быть сообщен при помощи этой функции ограничивается значением двойного слова (DWORD). Если функция завершается успешно, возвращаемое значение - младшая часть двойного слова размера файла, и если параметр lpFileSizeHigh - не ПУСТО (NULL), функция помещает старшую часть двойного слова размера файла в переменную, на которую указывает этот параметр. Если функция завершается ошибкой, и lpFileSizeHigh равен ПУСТО (NULL), возвращаемое значение - INVALID_FILE_SIZE. Если функция завершается ошибкой, и lpFileSizeHigh - не ПУСТО (NULL), возвращаемое значение - INVALID_FILE_SIZE.

Синтаксис:GetFileSize (hFile, // дескриптор файла, размер которого должен возвратиться.lpFileSizeHigh // указатель на переменную, в которой возвращается старшее слово размера файла.

);

CloseHandle

Функция закрывает дескриптор открытого объекта, созданный функцией CreateFile. Если функция завершается успешно, величина возвращаемого значения - не 0. Если функция завершается с ошибкой, величина возвращаемого значения - 0.

Синтаксис:

BOOL CloseHandle (

HANDLE hObject // дескриптор открытого объекта

);

MessageBox

Отображается модальное диалоговое окно, которое содержит системный значок, набор кнопок, а также краткое заявление конкретного сообщения, например, статуса или об ошибке. В окне сообщения возвращает целое число, указывающее кнопку, нажатую пользователем. Если функция завершается ошибкой, возвращаемое значение равняется 0.

Синтаксис:

Int MessageBox (

HWND HWND, // Дескриптор владельца окна в окне сообщения. Если этот параметр - ПУСТО (NULL), окно сообщения не имеет окна владельца.

LPCTSTR lpText, // Указатель на символьную строку с нулем в конце, которая содержит сообщение показываемое на экране.

LPCTSTR lpCaption, // Указатель на символьную строку с нулем в конце, которая содержит заголовок диалогового окна (окна сообщения).

UINT uType // Содержание и поведение диалогового окна.

);

SysAllocStringByteLen

Принимает на входе строку ANSI и возвращает содержащую ее BSTR. Не выполняет никаких преобразований ANSI-Unicode.

BSTR SysAllocStringByteLen (

char FAR* psz, // Заканчивающаяся нулем строка, которую нужно скопировать, или NULL, если новая строка должна остаться неинициализированной.int len // Число байт, которые нужно скопировать из psz. После скопированных символов добавляется нулевой символ, т.е. всего выделяется len +1 байт

);

ReadFile

Функция читает данные из файла или того, что было создано функцией CreateFile, начиная с позиции, обозначенной указателем файла.

Синтаксис:ReadFile (hFile, // дескриптор файла, который читаетсяlpBuffer, // Указатель на буфер, который принимает прочитанные данные из файлаnNumberOfBytesToRead, // число байтов, которые читаются из файлаlpNumberOfBytesRead, // число прочитанных байтовlpOverlapped // асинхронный буфер

);

WriteFile

Функция пишет данные в файл с места, обозначенного указателем позиции в файле. Если функция завершается успешно, величина возвращаемого значения - не 0. Если функция завершается с ошибкой, величина возвращаемого значения - 0.

Синтаксис:WriteFile (hFile, // дескриптор файлаlpBuffer, // Указатель на буфер, содержащий данные, которые будут записаны в файлnNumberOfBytesToWrite, // число байтов, которые будут записаны в файлlpNumberOfBytesWritten, // число записанных байтовlpOverlapped // асинхронный буфер

);

DeleteFile

Функция удаляет существующий файл. Если функция завершается успешно, возвращаемое значение - не 0. Если функция завершается с ошибкой, величина возвращаемого значения - 0.

Синтаксис:DeleteFile (lpFileName // Указатель на символьную строку с нулем в конце, которая определяет имя удаляемого файла

);

GetWindowTextLength

Функция возвращает обратно длину, в символах, текста строки заголовка заданного окна (если окно имеет область заголовка). Если определяемое окно - орган управления, функция возвращает обратно длину текста внутри элемента управления. Однако, GetWindowTextLength не может получить длину текста поля редактирования текста в другом приложении.

СинтаксисGetWindowTextLength (hWnd // дескриптор окна или панели

// управления с текстом

);

SysFreeString

Освобождает строку, выделенную ранее с помощью SysAllocString, SysAllocString-ByteLen, SysReAllocString, SysAllocStringLen и SysReAllocStringLen.SysFreeString

(bstr // Выделенная ранее BSTR либо NULL. В последнем случае функция просто возвращает управление.

);

DestroyWindow

Функция разрушает заданное окно. Функция отправляет сообщения WM_DESTROY и WM_NCDESTROY окну, чтобы деактивировать его и удалить фокус клавиатуры из него. Функция также уничтожает меню окна, очищает очередь потоков сообщений, уничтожает таймеры, удаляет монопольное использование буфера обмена и разрывает цепочку просмотра окон буфера обмена (если окно имеет наверху цепочку просмотров).

Если заданное окно - родитель или владелец окон, DestroyWindow автоматически уничтожает связанные дочерние или находящиеся в собственности окна, когда она уничтожает окно владельца или родителя. Функция сначала уничтожает дочерние или находящиеся в собственности окна, а затем она уничтожает окно владельца или родителя.

Функция DestroyWindow уничтожает также и немодальные диалоговые окна, созданные функцией CreateDialog.

СинтаксисDestroyWindow (hWnd // дескриптор для разрушения окна

);

CallWindowProc

Функция передает информацию сообщения процедуре заданного окна.

СинтаксисCallWindowProc (lpPrevWndFunc, // указатель на предыдущую процедуруhWnd, // дескриптор окнаMsg, // сообщениеwParam, // первый параметр сообщенияlParam // второй параметр сообщения

);

GetOpenFileName

Функция создает диалоговое окно Открыть (Open), которое позволяет пользователю определить открываемый диск, каталог и имя файла или имена ряда файлов. Если пользователь задает имя файла и щелкает по кнопке ОК, возвращаемое значение не нуль. Буфер, указанный членом lpstrFile структуры OPENFILENAME содержит полный путь и имя файла, которые определил пользователь. Если пользователь прервал работу или закрыл диалоговое окно Открыть (Open) или произошла ошибка, возвращаемое значение - 0.

Синтаксис:GetOpenFileName (lpofn // Указатель на структуру OPENFILENAME, которая содержит информацию, используемую для инициализации диалогового окна. Когда GetOpenFileName возвращает значение, эта структура содержит информацию о файле, выбранном пользователем.

);

GetSaveFileName

Функция создает стандартное диалоговое окно Сохранить (Save), которое позволяет пользователю определить диск, каталог и имя файла, которое нужно сохранить. Если пользователь задает имя файла и щелкает по кнопке ОК и функция завершается успешно, возвращаемое значение не 0.

Синтаксис:

BOOL GetSaveFileName (

LPOPENFILENAME lpofn // Указатель на структуру OPENFILENAME, которая содержит информацию, используемую, чтобы инициализировать диалоговое окно. Когда GetSaveFileName возвращает значение, эта структура содержит информацию о выбранном пользователем файле.

 


Текст программы

программирование программа ассемблер текстовый

Qikpad . asm

386flat, stdcall; 32 bit memory model casemap:none; чувствительно к регистру

include qikpad.inc; локально включаем этот файл

code:GetModuleHandle, NULLhInstance, eaxGetCommandLineCommandLine, eaxInitCommonControlsWinMain, hInstance, NULL, CommandLine, SW_SHOWDEFAULTExitProcess, eaxproc hInst:DWORD,:DWORD,:DWORD,:DWORD

;====================

; положим LOCALs в stack

;====================wc:WNDCLASSEXmsg:MSGWwd:DWORDWht:DWORDWtx:DWORDWty:DWORDclBuffer[128]:BYTE

;==================================================

; Заполните WNDCLASSEX структуры с необходимыми переменными

;==================================================LoadIcon, hInst, 500; иконка IDhIcon, eaxszClassName, «QikPad_Class»wc.cbSize, sizeof WNDCLASSEXwc.style, CS_HREDRAW or CS_VREDRAW \CS_BYTEALIGNWINDOWwc.lpfnWndProc, offset WndProcwc.cbClsExtra, NULLwc.cbWndExtra, NULLm wc.hInstance, hInstGetStockObject, HOLLOW_BRUSHwc.hbrBackground, eaxwc.lpszMenuName, NULLwc.lpszClassName, offset szClassNamem wc.hIcon, hIconLoadCursor, NULL, IDC_ARROWwc.hCursor, eaxm wc.hIconSm, hIconRegisterClassEx, ADDR wc

;================================

; Центр окна следующих размеров

;================================

mov Wwd, 800

mov Wht, 600GetSystemMetrics, SM_CXSCREENTopXY, Wwd, eaxWtx, eaxGetSystemMetrics, SM_CYSCREENTopXY, Wht, eaxWty, eaxCreateWindowEx, WS_EX_LEFT,szClassName,szUntitled,_OVERLAPPEDWINDOW,, Wty, Wwd, Wht,, NULL,, NULLhWnd, eaxLoadMenu, hInst, 600; menu IDSetMenu, hWnd, eaxGetAppPath, ADDR PthBuffer GetCL, 1, ADDR clBuffer

; -

; Возвращаемое значение 1 является сигналом успешной работы

; -eax == 1Read_File_In, ADDR clBuffer, hEditShowWindow, hWnd, SW_SHOWNORMALUpdateWindow, hWnd

;=========================================

; повторять, пока PostQuitMessage передает

;=========================================:GetMessage, ADDR msg, NULL, 0,0eax, 0ExitLoopTranslateMessage, ADDR msgDispatchMessage, ADDR msgStartLoop:msg.wParamendpproc hWin:DWORD,:DWORD,:DWORD,:DWORDvar:DWORDcaW:DWORDcaH:DWORDtbh:DWORDsbh:DWORDwWid:DWORDwHgt:DWORDhDC:DWORDRct:RECTtbab:TBADDBITMAPtbb:TBBUTTONbuffer1 [128]:BYTE; these are two spare buffersbuffer2 [128]:BYTE; for text manipulation etc.uMsg == WM_COMMAND

;======== menu commands ========wParam == 1000_File:SendMessage, hEdit, EM_GETMODIFY, 0,0eax == TRUEConfirmation, hWineax == IDYESSaveFileeax == IDCANCELeax, 0SetWindowText, hEdit, NULLSetWindowText, hWin, ADDR szUntitledSendMessage, hStatus, SB_SETTEXT, 2, NULLwParam == 1001_File:SendMessage, hEdit, EM_GETMODIFY, 0,0eax == TRUEConfirmation, hWineax == IDYESSaveFileeax == IDCANCELeax, 0@Fdb «Open A File», 0db «All files», 0, «*.*», 0,

«Text files», 0, «*.TEXT», 0,0

@@:FillBuffer, ADDR szFileName, length szFileName, 0GetFileName, hWin, ADDR szTitleO, ADDR szFilterOszFileName[0], 0;<< ноль если нажата dlgbox@FRead_File_In, ADDR szFileName, hEditSetWindowText, hWin, ADDR szFileName

@@:wParam == 1002SaveFilewParam == 1003SaveFileAswParam == 1010SendMessage, hWin, WM_SYSCOMMAND, SC_CLOSE, NULLwParam == 1900AboutwParam == 1100_Undo:SendMessage, hEdit, WM_UNDO, 0,0wParam == 1101_Cut:SendMessage, hEdit, WM_CUT, 0,0wParam == 1102_Copy:SendMessage, hEdit, WM_COPY, 0,0wParam == 1103_Paste:SendMessage, hEdit, WM_PASTE, 0,0wParam == 1104SendMessage, hEdit, WM_CLEAR, 0,0wParam == 1105WordWrap

;====== end menu commands ======uMsg == WM_SETFOCUSSetFocus, hEdituMsg == WM_CREATEDo_Status, hWinWrapFlag, 0EditML, NULL, 0,30,300,200, hWin, 700, WrapFlaghEdit, eaxSetWindowLong, hEdit, GWL_WNDPROC, EditProclpEditProc, eaxuMsg == WM_SIZEMoveWindow, hStatus, 0,0,0,0, TRUERct.bottomtbh; toolbar heightGetClientRect, hStatus, ADDR RctRct.bottomsbh; status bar heightGetClientRect, hWin, ADDR RctRct.rightwWidRct.bottomwHgteax, tbhwHgt, eaxeax, sbhwHgt, eaxtbh, 2wHgt, 2MoveWindow, hEdit, 0, tbh, wWid, wHgt, TRUEuMsg == WM_CLOSESendMessage, hEdit, EM_GETMODIFY, 0,0eax == TRUEConfirmation, hWineax == IDYESSaveFileeax == IDCANCELeax, 0uMsg == WM_DESTROYPostQuitMessage, NULL0DefWindowProc, hWin, uMsg, wParam, lParamendpproc wDim:DWORD, sDim:DWORDsDim, 1; divide screen dimension by 2wDim, 1; divide window dimension by 2eax, wDim; copy window dimension into eaxsDim, eax; sub half win dimension from half screen dimensionsDimendpproc szMsg:DWORD, tx:DWORD, ty:DWORD, wd:DWORD, ht:DWORD,:DWORD, ID:DWORD, Wrap:DWORDhCtl:DWORDhFnt:DWORDeStyle:DWORDCtlStyle, «EDIT»eStyle, WS_VISIBLE or WS_CHILDWINDOW or \_VSCROLL or ES_NOHIDESEL or \_AUTOVSCROLL or ES_MULTILINEWrap == 0eStyle, WS_HSCROLL or ES_AUTOHSCROLLCreateWindowEx, WS_EX_CLIENTEDGE, ADDR CtlStyle, szMsg,, tx, ty, wd, ht, hParent, ID, hInstance, NULLhCtl, eaxGetStockObject, SYSTEM_FIXED_FONThFnt, eaxSendMessage, hCtl, WM_SETFONT, hFnt, TRUEeax, hCtlendp_File_In proc lpszDiskFile:DWORD, hEditControl:DWORDhFile:DWORDhMem$:DWORDln:DWORDbr:DWORDtxtBuffer[64]:BYTECreateFile, lpszDiskFile, GENERIC_READ, FILE_SHARE_READ,, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULLhFile, eaxGetFileSize, hFile, NULLln, eaxln > 32767CloseHandle, hFiletooBig, «Файл слишком большой!!!»MessageBox, hWnd, ADDR tooBig, ADDR szDisplayName, MB_OKeax, eaxSysAllocStringByteLen, 0, lnhMem$, eaxReadFile, hFile, hMem$, ln, ADDR br, NULLSetWindowText, hEditControl, hMem$SysFreeString, hMem$CloseHandle, hFilelnstr, ADDR szOpenedAteaxMemCopy, ADDR szOpenedAt, ADDR txtBuffer, eaxdwtoa, ln, ADDR sizeBufferlstrcat, ADDR txtBuffer, ADDR sizeBufferlstrcat, ADDR txtBuffer, ADDR bytesSendMessage, hStatus, SB_SETTEXT, 2, ADDR txtBuffer_File_In endpproc hMain:DWORDConfirmMsg, «File not saved, save it now?»MessageBox, hMain, ADDR ConfirmMsg, ADDR szDisplayName,_YESNOCANCEL or MB_ICONQUESTIONendp_2_Disk proc lpszFile_Name:DWORDln:DWORDhMem$:DWORDhFile:DWORDbw:DWORD txtBuffer[64]

; -

; обрезает файл до нулевой длины, если он существует

; -CreateFile, lpszFile_Name,; Указатель на имя файла_WRITE,; режим доступа (чтение-запись)

NULL,

NULL,; указатель на атрибуты безопасности

CREATE_ALWAYS,; как создать_ATTRIBUTE_NORMAL,; атрибуты файловhFile, eaxGetWindowTextLength, hEditln, eaxlnSysAllocStringByteLen, 0, lnhMem$, eaxGetWindowText, hEdit, hMem$, lnWriteFile, hFile, hMem$, ln, ADDR bw, NULLSysFreeString, hMem$CloseHandle, hFileSendMessage, hEdit, EM_SETMODIFY, FALSE, 0lnstr, ADDR szSavedAteaxMemCopy, ADDR szSavedAt, ADDR txtBuffer, eaxdwtoa, ln, ADDR sizeBufferlstrcat, ADDR txtBuffer, ADDR sizeBufferlstrcat, ADDR txtBuffer, ADDR bytesSendMessage, hStatus, SB_SETTEXT, 2, ADDR txtBuffer_2_Disk endpproc@Fdb «Save file as», 0db «All files», 0, «*.*», 0,

«Text files», 0, «*.TEXT», 0,0

@@:FillBuffer, ADDR szFileName, length szFileName, 0SaveFileName, hWnd, ADDR szTitleS, ADDR szFilterSszFileName[0], 0;<< ноль, если нажата dlgbox@FWrite_2_Disk, ADDR szFileNameSetWindowText, hWnd, ADDR szFileName

@@:endpprocbuffer[128]:BYTE

; -

; проверить, есть ли название

; -

invoke GetWindowText, hWnd, ADDR buffer, 128

invoke lstrcmp, ADDR buffer, ADDR szUntitledeax == 0SaveFileAsWrite_2_Disk, ADDR bufferendpprocmFlag:DWORDln:DWORDhMem$:DWORDSendMessage, hEdit, EM_GETMODIFY, 0,0mFlag, eaxGetWindowTextLength, hEditln, eaxlnSysAllocStringByteLen, 0, lnhMem$, eaxGetWindowText, hEdit, hMem$, lnDestroyWindow, hEditWrapFlag == 0WrapFlag, 1WrapON,» Wrap ON»SendMessage, hStatus, SB_SETTEXT, 1, ADDR WrapONWrapFlag == 1WrapFlag, 0WrapOFF,» Wrap OFF»SendMessage, hStatus, SB_SETTEXT, 1, ADDR WrapOFFEditML, NULL, 0,30,300,200, hWnd, 700, WrapFlaghEdit, eaxSetWindowLong, hEdit, GWL_WNDPROC, EditProclpEditProc, eaxSendMessage, hWnd, WM_SIZE, 0,0SetWindowText, hEdit, hMem$SysFreeString, hMem$SendMessage, hEdit, EM_SETMODIFY, mFlag, 0SetFocus, hEditendpproc hCtl:DWORD,:DWORD,:DWORD,:DWORDuMsg == WM_KEYUPwParam == VK_F1AboutwParam == VK_F9WordWrapwParam == VK_ESCAPESendMessage, hWnd, WM_SYSCOMMAND, SC_CLOSE, NULL0CallWindowProc, lpEditProc, hCtl, uMsg, wParam, lParamendpprocAboutMsg, «Текстовый редактор Граховой Анастасии», 13,10,\

«Анастасия © 2013»ShellAbout, hWnd, ADDR szDisplayName, ADDR AboutMsg, hIconendpstart

Filedlgs.asm

GetFileName PROTO:DWORD,:DWORD,:DWORDPROTO:DWORD,:DWORD,:DWORDPROTO:DWORD,:DWORD,:BYTEdb 260 dup(0)OPENFILENAME <>; structureproc hParent:DWORD, lpTitle:DWORD, lpFilter:DWORDofn.lStructSize, sizeof OPENFILENAMEm ofn.hWndOwner, hParentm ofn.hInstance, hInstancem ofn.lpstrFilter, lpFilterm ofn.lpstrFile, offset szFileNameofn.nMaxFile, sizeof szFileNamem ofn.lpstrTitle, lpTitleofn. Flags, OFN_EXPLORER or OFN_FILEMUSTEXIST or \_LONGNAMESGetOpenFileName, ADDR ofnendpproc hParent:DWORD, lpTitle:DWORD, lpFilter:DWORDofn.lStructSize, sizeof OPENFILENAMEm ofn.hWndOwner, hParentm ofn.hInstance, hInstancem ofn.lpstrFilter, lpFilterm ofn.lpstrFile, offset szFileNameofn.nMaxFile, sizeof szFileNamem ofn.lpstrTitle, lpTitleofn. Flags, OFN_EXPLORER or OFN_LONGNAMESGetSaveFileName, ADDR ofnendpproc lpBuffer:DWORD, lenBuffer:DWORD, TheChar:BYTEediedi, lpBuffer; адрес буфераecx, lenBuffer; длина буфераal, TheChar; загрузить др. с характером stosb; написать тип в буфере до тех пор пока ECX = 0

pop ediendp

Rsrc.rc

#include «\masm32\include\resource.h»

    ICON MOVEABLE PURE LOADONCALL DISCARDABLE «MAINICON.ico»

    MENUEX MOVEABLE IMPURE LOADONCALL DISCARDABLE«&Файл», 0«&Создать», 1000 «&Открыть…», 1001

MENUITEM «&Сохранить…», 1002

MENUITEM «Сохранить &как», 1003

MENUITEM «», 0x0800 /*MFT_SEPARATOR*/«&Закрыть», 1010«&Правка», 0«&Отменить\tCtrl+Z», 1100«», 0x0800 /*MFT_SEPARATOR*/«&Вырезать\tCtrl+X», 1101«&Копировать\tCtrl+C», 1102«&Вставить\tCtrl+V», 1103«&Удалить\tDelete», 1104«&Справка», 0«&О блокноте», 1900

 


Вывод

 

В результате выполнения данной курсовой работы был изучен один из разделов операционной системы - работа с текстовой информацией при программировании в Windows. Была написана программа на 32-битном ассемблере с применением API-функций.



2020-02-04 159 Обсуждений (0)
Показать окно, установить статус показа. Если окно перед этим было видимо, возвращается значение - не 0. Если окно перед этим было не видимо, возвращаемое значение - 0. 0.00 из 5.00 0 оценок









Обсуждение в статье: Показать окно, установить статус показа. Если окно перед этим было видимо, возвращается значение - не 0. Если окно перед этим было не видимо, возвращаемое значение - 0.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (159)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)