21,458
社区成员
发帖
与我相关
我的任务
分享
#include "resource.h"
;################################################################################
#define BOXMONTH 1000
;################################################################################
Calender DIALOGEX 0, 0, 120, 140
STYLE WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
CLASS "Calender"
CAPTION "Calender"
FONT 8, "MS Sans Serif"
BEGIN
COMBOBOX BOXMONTH,10,10,50,100,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
END
;##################################################################################
TITLE Calculator
;==================================================================
; Author: 狼の禅
; Date: 2009/07/24
;==================================================================
.486
.model flat,stdcall
option casemap:none ; case sensitive
;==================================================================
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
;------------------------------------------------------------------
Calculate PROTO :DWORD,:DWORD,:DWORD,:DWORD
WinMain PROTO :DWORD, :DWORD, :DWORD, :DWORD
WndProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
;==================================================================
.data
hInstance dd ?
hMonth dd ?
dlgname db "Calender",0
Month1 db "一月",0
Month2 db "二月",0
BOXMONTH equ 1000
;==================================================================
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke WinMain,hInstance,0,0,SW_SHOWDEFAULT
invoke ExitProcess,eax
;==================================================================
WinMain proc hInst:DWORD, hPrevInst:DWORD, CmdLine:DWORD, CmdShow:DWORD
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
LOCAL hWnd:HWND
mov wc.cbSize,sizeof WNDCLASSEX
mov wc.style,CS_HREDRAW or CS_VREDRAW ;or CS_BYTEALIGNWINDOW
mov wc.lpfnWndProc,OFFSET Calculate
mov wc.cbClsExtra,0
mov wc.cbWndExtra,DLGWINDOWEXTRA
mov eax,hInst
mov wc.hInstance,eax
mov wc.hbrBackground,COLOR_BTNFACE+1
mov wc.lpszMenuName,NULL
mov wc.lpszClassName,OFFSET dlgname
mov wc.hIcon,NULL
invoke LoadCursor,NULL,IDC_ARROW
mov wc.hCursor,eax
mov wc.hIconSm,0
invoke RegisterClassEx,ADDR wc
invoke CreateDialogParam,hInst,ADDR dlgname,0,ADDR Calculate,0
mov hWnd,eax
invoke ShowWindow,hWnd,CmdShow
invoke UpdateWindow,hWnd
StartLoop: invoke GetMessage,addr msg,0,0,0
cmp eax,0
je ExitLoop
invoke TranslateMessage,ADDR msg
invoke DispatchMessage,ADDR msg
jmp StartLoop
ExitLoop: mov eax,msg.wParam
ret
WinMain endp
;==================================================================
Calculate proc hWin:DWORD,uMsg:UINT,aParam:DWORD,bParam:DWORD
LOCAL Ps:PAINTSTRUCT
.if uMsg == WM_INITDIALOG
invoke GetDlgItem,hWin,BOXMONTH
mov hMonth,eax
invoke SendMessage,hMonth,CB_ADDSTRING,hWin,addr Month1
invoke SendMessage,hMonth,CB_ADDSTRING,hWin,addr Month2
.elseif uMsg == WM_CLOSE
invoke EndDialog,hWin,NULL
invoke PostQuitMessage,0
.else
invoke DefWindowProc,hWin,uMsg,aParam,bParam
ret
.endif
xor eax,eax
ret
Calculate endp
;==================================================================
end start