⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aboutme.asm

📁 本程序**%100汇编语言**编写。 编译器: <<-----MASM6.14----->> 编辑器: <<---EditPlus2.10c--->>(
💻 ASM
字号:
.386
		.model flat, stdcall
		option casemap :none   ; case sensitive

include		windows.inc
include		user32.inc
include		kernel32.inc
include		comctl32.inc
include		comdlg32.inc
include		shell32.inc
include		gdi32.inc

includelib	user32.lib
includelib	kernel32.lib
includelib	comctl32.lib
includelib	comdlg32.lib
includelib	shell32.lib
includelib	gdi32.lib
;**********************************************
_HyperLinkProc proto :dword,:dword,:dword,:dword
AboutDialogProc proto:dword,:dword,:dword,:dword
.const
DLG_ABOUT EQU 3000
IDI_MAIN equ 1000
IDC_HANDLE equ 2000
 IDC_HOMEPAGE equ 3002
 IDC_EMAIL   equ  3001
 IDC_OICQ     equ 3003
 IDC_MARK     EQU  3004
;*********************************************
.data
ClassName DB "SimpleWinClass",0
AppName DB "惊涛之帆汇编工作室.",0
DlgName db "MyDialog",0
GoHomePage db "http://smallwaves.yeah.net",0
GoEmail db "mailto:webmaster@jingtao.net"
	db "?subject=让我们共同努力吧!",0
;***********************************************
.data?
hInstance HINSTANCE ?
CommandLine LPSTR ?
hCursor dd ?
hIcon dd ?
buffer db 256 dup (?)
RGB macro red,green,blue
xor eax,eax
mov ah,blue
shl eax,8
mov ah,green
mov al,red
endm
;************************************************
	.code
DllEntry proc hInst:DWORD, reason:DWORD, reserved1:DWORD
   .if reason==DLL_PROCESS_ATTACH  ; When the dll is loaded
	        push hInst
	        pop hInstance 
		invoke	InitCommonControls		
		invoke	DialogBoxParam,hInstance,DLG_ABOUT,\
			NULL,offset AboutDialogProc,DLG_ABOUT
		invoke ExitProcess,NULL
;*******************************************************************
   .endif
   mov eax,TRUE
   ret
DllEntry Endp
_HyperLinkProc proc hWnd:dword,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
	mov eax,uMsg
	.if eax==WM_LBUTTONUP
		invoke GetDlgCtrlID,hWnd
		.if eax==IDC_HOMEPAGE	
			invoke ShellExecute,0,0,offset GoHomePage,0,0,0
		.elseif eax==IDC_EMAIL
			invoke ShellExecute,0,0,offset GoEmail,0,0,0
		.endif
	.elseif eax==WM_NCHITTEST
		mov eax,TRUE
		ret
	.elseif eax==WM_SETCURSOR
		INVOKE SetCursor,hCursor
	.else
		invoke GetWindowLong,hWnd,GWL_USERDATA
		INVOKE CallWindowProc,eax,hWnd,uMsg,wParam,lParam
	ret
	.endif
	xor eax,eax
	ret
_HyperLinkProc endp
_SetBkColor proc hWnd:dword,wParam:dword,backcolor:dword
local hBrush :dword
local rect:RECT
local LogBrush:LOGBRUSH
	mov LogBrush.lbStyle,BS_SOLID
	mov eax,backcolor
	mov LogBrush.lbColor,eax
	invoke CreateBrushIndirect,addr LogBrush
	mov hBrush,eax
	invoke GetClientRect,hWnd,addr rect
	invoke FillRect,wParam,addr rect,hBrush	
	mov eax,TRUE
	ret
	ret
_SetBkColor endp
AboutDialogProc proc uses ebx esi edi ,\
		hWnd:dword,uMsg:UINT,wParam:dword,lParam:dword
		local hWinTemp:dword
		local stFont:LOGFONT
		LOCAL hFontOutput:dword
		LOCAL ps:PAINTSTRUCT
		LOCAL hdc:HDC
		LOCAL hMemoryDC:HDC
		LOCAL hOldBmp:DWORD
		LOCAL bitmap:BITMAP
		local rect:RECT
		LOCAL hBitMap:dword
		mov eax,uMsg
	.if eax==WM_CLOSE
		INVOKE EndDialog,hWnd,NULL
	.elseif eax==WM_INITDIALOG
		invoke LoadCursor,hInstance,IDC_HANDLE
		MOV hCursor,eax
		invoke GetDlgItem,hWnd,IDC_HOMEPAGE
		mov hWinTemp,eax
		invoke SetWindowLong,hWinTemp,\
		GWL_WNDPROC,OFFSET _HyperLinkProc
		invoke SetWindowLong,hWinTemp,\
		GWL_USERDATA,EAX
		invoke GetDlgItem,hWnd,IDC_EMAIL
		mov hWinTemp,eax
		invoke SetWindowLong,hWinTemp,\
		GWL_WNDPROC,OFFSET _HyperLinkProc
		invoke SetWindowLong,hWinTemp,\
		GWL_USERDATA,EAX
	.elseif eax==WM_CTLCOLORSTATIC
		invoke GetDlgCtrlID,lParam
		.if eax==IDC_HOMEPAGE || eax==IDC_EMAIL || eax==IDC_OICQ || EAX==IDC_MARK || eax==11 || EAX==12 || EAX==10
			.IF EAX==IDC_HOMEPAGE || eax==IDC_EMAIL || eax==IDC_OICQ
		invoke SendMessage,lParam,WM_GETFONT,0,0
		MOV hFontOutput,eax
		invoke GetObject,hFontOutput,sizeof LOGFONT,ADDR stFont
		mov stFont.lfUnderline,TRUE
		invoke CreateFontIndirect,addr stFont
		mov hFontOutput,eax
		invoke SelectObject,wParam,eax
			.ENDIF
		RGB 255,61,0
		invoke SetTextColor,wParam,eax
		;invoke GetSysColor,COLOR_MENU
		RGB 0,255,0
		INVOKE SetBkColor,wParam,eax
		invoke DeleteObject,hFontOutput
		invoke GetStockObject,NULL_BRUSH
	        .ELSE
		MOV eax,FALSE
		ret
		.endif	
		ret
	.elseif uMsg==WM_ERASEBKGND
		RGB 0,255,0
		invoke _SetBkColor,hWnd,wParam,eax
	.else
		mov eax,FALSE
		ret
		.endif
		mov eax,TRUE
		ret
	mov eax,TRUE
	ret
AboutDialogProc endp
end DllEntry

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -