PDA

View Full Version : change color for formborderstyle



saleci
سه شنبه 10 مهر 1386, 00:33 صبح
سلام. من می خوام رنگ قسمت بالای فرم (formborderstyle) و رنگ کلیدهای مینی مایز و ... رو عوض کنم بدون استفاده از skin ها . میشه برای نوشتن کدش من رو راهنمایی کنید.

Inprise
سه شنبه 10 مهر 1386, 02:39 صبح
این رو بخون باید شروع خوبی باشه : http://support.microsoft.com/kb/32685

Nima_NF
سه شنبه 10 مهر 1386, 17: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
جمعه 13 مهر 1386, 23:18 عصر
سلام .. ممنون از راهنماییتون ولی من شرمنده ام چون این تاپیک رو باید در #c قرار می دادم .
من از اسکین دات نت استفاده کردم ولی چون سرعت کار رو می آورد پایین منصرف شدم . باز هم اگه می تونید راهنماییم کنید .