PDA

View Full Version : درخواست توضیحاتی درباره این کد



Good Looking
دوشنبه 28 مرداد 1387, 01:03 صبح
Function CombineIcons(FontIcon,BackIcon:HIcon):HIcon;



Var



WinDC:HDC;



FrontInfo:TIconInfo;



FrontDC:HDC;



FrontSV:HBITMAP;



BackInfo:TIconInfo;



BackDC:HDC;



BackSV:HBITMP;



Bmpobj:tagBitmap;



Begin



winDC :=GetDC(0);



GetIconInfo(fronticon,frontinfo);



FrontDc :=CreatCompatibleDC(WinDC);



FrontSV := selectobject(FrontDC,FrontInfo.hbmMask);



Get IconInfo(BackIcon,BackInfo);



BackDC := CreatecompatibleDC(winDC);



BackSV := selectobject(BackDC,BackInfo.hbmMask);



Getobject(FrontInfo.hbmMask,SizeOf(Bmpobj),@Bmpobj );



BitBlt(BackDC,0,0,Bmpobj.bmWidth,Bmobj.bmHeight,Fr ontDC,0,0,SRCAND);



SelectObject(BackDC,BackInfo.hbmColor);



DrawIconEx(BackDC,0,0,FrontIcon,0,0,0,0,DI_NORMAL) ;



Result :=CreatIconIndirect(BackInfo);



SelectObject(FrontDC,FrontSV);



DeleteDC(FrontDC);



SelectObject(BackDC,BackSV);



DeleteDC(BackDC);



ReleaseDC(0,WinDC);



DeleteObject(FrontInfo.hbmColor);



DeleteObject(FrontInfo.hbmMask);



DeleteObject(BackInfo.hbmColor);



DeleteObject(BackInfo.hbmMask);



End;



اگر به ایکون شورتکاتها توجه کرده باشید دیده اید که در کنار انها یک علامت فلش کوچک نیز موجود است. در کدهای بالا چگونگی شبیه سازی این عمل ویندوز شرح داده شده است . وپس از خاتمه كار با ایکون ساخته شده از دستورDestroyIcon() با ید استفاده شود.






(البته من این کد را در جایی پیدا کرده ام و سئوال من از حرفه ایهای دلفی این است که






1:بعد از نوشتن کدها باید از چه ابزارهایی استفاده کنم تا اینکه بتوانم برنامه مورد نظر را کامپایل نمایم؟






2:اگر ممکن است توضیح مختصری راجع به این کدها بیان بفرمایید چونکه اغلب انها را متوجه نشدم. )






با سپاس و تشکر فراوان

vcldeveloper
پنج شنبه 31 مرداد 1387, 03:19 صبح
اگر ممکن است توضیح مختصری راجع به این کدها بیان بفرمایید چونکه اغلب انها را متوجه نشدم.
درباره GDI در Windows SDK تحقیق کنید، تمام توابع استفاده شده توابع API ویندوز هستند.