ورود

View Full Version : تغییر اندازه و رنگ فونت MessageBox



majid1605
جمعه 30 دی 1390, 22:30 عصر
.386
.model flat, stdcall
option casemap:none
include \MASM32\INCLUDE\windows.inc
include \MASM32\INCLUDE\kernel32.inc
includelib \MASM32\LIB\kernel32.lib
include \MASM32\INCLUDE\user32.inc
includelib \MASM32\LIB\user32.lib

.data
MsgCaption db "Majid",0
form db '%04hu/%02hu/%02hu %02hu:%02hu:%02hu',0
mytime SYSTEMTIME <>

.data?
Buffer db 1024 dup (?)

.code
start:
invoke GetSystemTime, addr mytime
xor eax, eax
mov ax, mytime.wSecond
movzx ebx, mytime.wMinute
movzx ecx, mytime.wHour
movzx edx, mytime.wYear
movzx edi, mytime.wDay
movzx esi, mytime.wMonth
invoke wsprintf,addr Buffer,addr form, edx, esi, edi, ecx, ebx, eax
invoke MessageBox, NULL, addr Buffer, addr MsgCaption, MB_ICONASTERISK
invoke ExitProcess,NULL
end start

این یه برنامه است که ساعت سیستم رو نشون میده توی پنجره ویندوز یه برنامه دیدم که با یه ماکرو میشد رنگ متن رو تغییر داد ولی توی این پنجره MessageBox نتونستم کاری بکنم می خواستم بدونم همچین کاری امکان داره یا نه .

دوم اینکه میشه یه نفر این برنامه توضیح بده منظورم خطوط زیره و از چه تابعی برای زمان استفاده کرده .چون برنامه های زیادی دیدم که هر کدوم به نحوی ساعت سیستم رو نشون میدادند یکیشون رو همینجا دوست عزیزمون xman_1365_x (http://barnamenevis.org/member.php?33193-xman_1365_x) نوشته بودند .


form db '%04hu/%02hu/%02hu %02hu:%02hu:%02hu',0

البته ظاهراً یه حالت برای تعریف رشته و طول میدان شبیه printf توی c


start:
invoke GetSystemTime, addr mytime
xor eax, eax
mov ax, mytime.wSecond
movzx ebx, mytime.wMinute
movzx ecx, mytime.wHour
movzx edx, mytime.wYear
movzx edi, mytime.wDay
movzx esi, mytime.wMonth
invoke wsprintf,addr Buffer,addr form, edx, esi, edi, ecx, ebx, eax

ممنون میشم