DIALOG.ASM
上传用户:ys_happy
上传日期:2007-01-09
资源大小:20k
文件大小:2k
- .386
- .model flat,STDCALL
- include win32.asi ; some 32-bit constants and structures
- include win32.ase
- .code
- CenterWindow PROC hwnd : dword
- LOCAL wrect : RECT, wWidth : dword, wHeight : dword
- lea eax,[wrect]
- call GetWindowRect,[hwnd],eax
- call GetSystemMetrics,SM_CXSCREEN
- mov [wWidth],eax
- call GetSystemMetrics,SM_CYSCREEN
- mov [wHeight],eax
- mov ecx,[wrect.rcRight]
- sub ecx,[wrect.rcLeft]
- mov eax,[wWidth]
- sub eax,ecx
- shr eax,1
-
- mov edx,[wrect.rcBottom]
- sub edx,[wrect.rcTop]
- mov ebx,[wHeight]
- sub ebx,edx
- shr ebx,1
-
- call MoveWindow,[hwnd],eax,ebx,ecx,edx,0
- ret
- CenterWindow ENDP
- ;-----------------------------------------------------------------------------
- ;
- ; For dialog boxes that only have an 'ok' button
- ;
- Public WaitingProc
- WaitingProc proc uses ebx edi esi, hdlg:DWORD, wmsg:DWORD, wparam:DWORD, lparam:DWORD
- ; now if we have a WM_COMMAND message one of the dialog controls
- ; has been clicked so see which one
- ;
- cmp [wmsg],WM_COMMAND
- jnz wpchkcenter
- cmp [wparam],IDOK
- jnz nomsg
- ;
- ; ok selected, close the dialog and return to the other window
- ;
- exitdlg:
- call EndDialog,[hdlg],0
- nomsg:
- sub eax,eax
- ret
- wpchkcenter:
- cmp [wmsg],WM_INITDIALOG
- jnz wpx
- call CenterWindow,[hdlg]
- wpx:
- sub eax,eax
- ret
- WaitingProc endp
- ;-----------------------------------------------------------------------------
- ;
- ; For dialog boxes that have Yes/No buttons
- ;
- Public YesNoProc
- YesNoProc proc uses ebx edi esi, hdlg:DWORD, wmsg:DWORD, wparam:DWORD, lparam:DWORD
- ; now if we have a WM_COMMAND message one of the dialog controls
- ; has been clicked so see which one
- ;
- cmp [wmsg],WM_COMMAND
- jnz ynchkcenter
- cmp [wparam],IDYES
- mov eax,1
- jz ynend
- cmp [wparam],IDNO
- mov eax,0
- jz ynend
- cmp [wparam],IDCANCEL
- mov eax,-1
- jz ynend
- sub eax,eax
- ret
- ynend:
- call EndDialog,[hdlg],eax
- sub eax,eax
- ret
- ynchkcenter:
- cmp [wmsg],WM_INITDIALOG
- jnz ynx
- call CenterWindow,[hdlg]
- ynx:
- sub eax,eax
- ret
- YesNoProc endp
- end