PDA

View Full Version : حرفه ای: کاربرد متد CreateParams چیست؟



habibb
جمعه 10 آبان 1392, 09:58 صبح
سلام می خواستم درمورد این متد بهم توضیح بدین.
مثلا در اینجا یک مثال پیدا کردم که یکی از کاربرد های CreateParams رو می بینید .


public class TransparentPictureBox : PictureBox
{
public TransparentPictureBox()
{
this.SetStyle(ControlStyles.Opaque, true);
}
protected override CreateParams CreateParams
{
get
{
CreateParams parms = base.CreateParams;
parms.ExStyle |= 0x20; // Turn on WS_EX_TRANSPARENT
return parms;
}
}
}

کلاس های این قطعه کد چیه ؟ هر کدوم چه کاری انجام میدن .
خروجیش رو میدونم
ی کامپوننت می سازه که اگه به 2 تا پیکچرباکس عکس بدی
البته پس زمینه سیاهه ، چرا؟
به هر حال عکس هر پیکچرباکس پشت اون یکی نشون داده میشه
و البته پیکچرباکس ها هم ی حد داره
یعنی نمیشه خیلی بزرگشون کرد و گرنه عکس هاشون پشت هم دیده نمیشه
من با این کلاس ها آشنا نیستم که هر کدوم چه کاری می کنند

habibb
جمعه 10 آبان 1392, 10:37 صبح
برای کمک به حل سوال مطالبی جمع آوری می کنم هر کس مطالب بیشتری می دونه اینجا قرار بده از همه مهمتر مثال های کاربردی قرار بدین.

:تشویق:

ساختن هر کنترل نمایشی ای معمولا با ساختن یک پنجره شروع میشه، نه فقط فرم ها، حتی اجزاء کوچکی مثل دکمه ها هم این پنجره رو دارند.
پنجره های ویندوز یکسری مشخصات مشترک عمومی دارند که موقع ساختن پنجره باید مشخص بشه. CreateParams موقع ساختن یک
پنجره فراخوانی میشه تا مشخصات اش رو تعیین کنه. حالا اگر یک برنامه نویسی بخواهد خیلی دقیق روی جزئیات پنجره کنترل داشته باشه
CreateParams رو override می کنه تا پنجره دقیقا با مشخصات دلخواه اش ایجاد بشه.

habibb
جمعه 10 آبان 1392, 12:36 عصر
اینم یک مثال کاربردی دیگه:تشویق:


private const int CP_NOCLOSE_BUTTON = 0x200;
protected override CreateParams CreateParams
{
get
{
CreateParams myCp = base.CreateParams;
myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON;
return myCp;
}

غیرفعال کردن آیکن بستن ویندوز فرم

با استفاده از این کد شما میتونید آیکن Close که بالای نوار ویندوز فرم هست رو غیرفعال کنید.

habibb
جمعه 10 آبان 1392, 14:23 عصر
اینم یک مثال کاربردی دیگه:متفکر:



private const int CS_DROPSHADOW = 0x00020000;//131072

protected override CreateParams CreateParams
{
get
{
CreateParams p = base.CreateParams;
p.ClassStyle |= CS_DROPSHADOW;
return p;
}
}

سایه دار کردن فرم:تشویق:

habibb
جمعه 10 آبان 1392, 15:15 عصر
protected override CreateParams CreateParams
{
get
{
new SecurityPermission(SecurityPermissionFlag.Unmanage dCode).Demand();

// Extend the CreateParams property of the Button class.
CreateParams cp = base.CreateParams;
// Update the button Style.
cp.Style |= 0x00000040; // BS_ICON value

return cp;
}
}

اینم که از msdn گرفتم و نمی دونم چی کار می کنه ؟
این مقدار های عددی چیه که توی این توابع استفاده میشه ؟ تغییرشون که میدم برنامه ارور می گیره ؟
این عملگر | چیه کارش چیه؟ می دونم Or هست
و این توابع کارشون چیه؟

m_karimi
شنبه 06 آبان 1396, 23:08 عصر
protected override CreateParams CreateParams
{
get
{
new SecurityPermission(SecurityPermissionFlag.Unmanage dCode).Demand();

// Extend the CreateParams property of the Button class.
CreateParams cp = base.CreateParams;
// Update the button Style.
cp.Style |= 0x00000040; // BS_ICON value

return cp;
}
}

اینم که از msdn گرفتم و نمی دونم چی کار می کنه ؟
این مقدار های عددی چیه که توی این توابع استفاده میشه ؟ تغییرشون که میدم برنامه ارور می گیره ؟
این عملگر | چیه کارش چیه؟ می دونم Or هست
و این توابع کارشون چیه؟

من هم دقیقا همین سوال رو دارم؟ ولی پاسخی داده نشده