View Full Version : change color for formborderstyle
saleci
سه شنبه 10 مهر 1386, 01:33 صبح
سلام. من می خوام رنگ قسمت بالای فرم (formborderstyle) و رنگ کلیدهای مینی مایز و ... رو عوض کنم بدون استفاده از skin ها . میشه برای نوشتن کدش من رو راهنمایی کنید.
Inprise
سه شنبه 10 مهر 1386, 03:39 صبح
این رو بخون باید شروع خوبی باشه : http://support.microsoft.com/kb/32685
Nima_NF
سه شنبه 10 مهر 1386, 18:29 عصر
از آنجایی که شما می خواهید در بخش Nonclient area تغییرات دهید (منو ، آیکن های خروج،caption ، فریم و غیره) باید از پیام های WM_NCPAINT استفاده کنید و توجه کنید که از WM_CTLCOLORxxx که در مقاله فوق ذکر شد نمی توانید استفاده کنید و سپس می توانید از GetDCEx و GetWindowDC برای گرفتن HDC استفاده کنید.
از دستور زیر برای رسم آیکن های مختلف(مثلا close X) می توانید استفاده کنید:
DrawFrameControl(hdc,&rect,DFC_CAPTION,DFCS_CAPTIONCLOSE);
برای تغییر رنگ نیز از این تابع:
FloodFill(hdc, rect.left+x, rect.top+y, RGB(0,0,0));
برای اطلاعان بیشتر به لینک زیر مراجعه کنید و فایل های سورس آن را بگیرید و بخش OnNcPaint را مطالعه کنید : http://www.codeguru.com/cpp/controls/buttonctrl/advancedbuttons/article.php/c5179/
saleci
شنبه 14 مهر 1386, 00:18 صبح
سلام .. ممنون از راهنماییتون ولی من شرمنده ام چون این تاپیک رو باید در #c قرار می دادم .
من از اسکین دات نت استفاده کردم ولی چون سرعت کار رو می آورد پایین منصرف شدم . باز هم اگه می تونید راهنماییم کنید .
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.