006
02.05.2005, 20:00 Uhr
A-l-e-x
|
Hier der Code:
Code: |
.386 .model flat,stdcall option casemap:none
include windows.inc include user32.inc include kernel32.inc include gdi32.inc include comctl32.inc include ole32.inc include oleaut32.inc include shell32.inc
includelib user32.lib includelib kernel32.lib includelib gdi32.lib includelib ole32.lib includelib oleaut32.lib includelib comctl32.lib includelib image.lib includelib shell32.lib
WndProc PROTO :HWND,:UINT,:WPARAM,:LPARAM
BitmapFromFile PROTO pszFileName:DWORD BitmapFromMemory PROTO pHeap:DWORD, dwSize:DWORD BitmapFromResource PROTO hModule:DWORD, lpName:DWORD
.const
IDR_JPG equ 100
IDD_DLG1 equ 1000 IDC_IMG1 equ 1001
.data?
hInstance dd ? hBmp dd ?
.code start: invoke GetModuleHandle,NULL mov hInstance,eax invoke InitCommonControls invoke DialogBoxParam,hInstance,IDD_DLG1,0,offset WndProc,0 invoke ExitProcess,eax
WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM LOCAL rect:RECT LOCAL hdc:DWORD LOCAL ps:PAINTSTRUCT LOCAL hMemDC:DWORD mov eax,uMsg .IF eax==WM_INITDIALOG invoke BitmapFromResource,hInstance,IDR_JPG mov hBmp,eax invoke SendDlgItemMessage,hWnd,IDC_IMG1,STM_SETIMAGE,IMAGE_BITMAP,hBmp .ElSEIF eax==WM_CLOSE invoke DestroyWindow,hWnd .ELSEIF eax==WM_PAINT invoke BeginPaint,hWnd,addr ps mov hdc,eax invoke CreateCompatibleDC,hdc mov hMemDC,eax invoke SelectObject,hMemDC,hBmp invoke GetClientRect,hWnd,addr rect invoke BitBlt,hdc,10,10,rect.right,rect.bottom,hMemDC,0,0,SRCCOPY invoke DeleteDC,hMemDC invoke EndPaint,hWnd,addr ps .ELSEIF eax==WM_DESTROY invoke DeleteObject,hBmp invoke PostQuitMessage,0 .ENDIF xor eax,eax ret WndProc endp
end start
|
Wer will, kann sich das ganze "Projekt" hier runterladen. Dieser Post wurde am 02.05.2005 um 20:03 Uhr von A-l-e-x editiert. |