ايران ويج

نسخه‌ی کامل: شفاف کردن رنگ خاصی از فرم با SetLayeredWindowAttributes
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام Biggrin

خواستم هرجای فرم که رنگش سفیده نامرئی بشه و بقیه اش باقی بمونه

تابع API به نام SetLayeredWindowAttributes تو VB6.0 درست عمل میکرد

تو #C هم شفاف میکنه ولی روی پنجره هایی که زیر قسمت شفاف قرار گرفتن نمیشه کلیک کردAmaze

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

فایل ضمیمه کامل ولی کدش رو میذارم که اگه نخواستین، دانلود نکنید...

کد php:
private void Form1_Load(object senderEventArgs e)
        {
            
this.Visible false;
            
this.FormBorderStyle FormBorderStyle.None;
            
this.Location = new Point(00);
            
this.Size = new Size(1024768);
            
this.TopMost true;
            
int Retval API_D.GetWindowLong((int)this.HandleAPI_C.GWL_EXSTYLE);
            
Retval Retval API_C.WS_EX_LAYERED;
            
API_D.SetWindowLong((int)this.HandleAPI_C.GWL_EXSTYLERetval);
            
API_D.SetLayeredWindowAttributes((int)this.Handle167772150API_C.LWA_COLORKEY);
            
API_D.DeleteObject(Retval);
            
this.Visible true;
        } 

راستی یه سؤال دیگه: خواستم دو تا مقدار int رو or کنم؛ درسته که از Pipeline باید استفاده کنم؟ منظورم int1 | int2 بود.
نیازی به API نداری. در خصوصیات فرمت یه مقدار هست به نام TransparencyKey که باید روی رنگ مورد نظرت تنظیم کنی. بعد اون رنگ را توی فرمت نامرئی میکنه.