PDA

View Full Version : سوال: back ground برای تکست باکس



arefba
پنج شنبه 08 مهر 1389, 18:43 عصر
راهی هست برای تکست باکس بک گروند گذاشت و یا رنگش رو ترنس پریتی کرد ؟؟؟

flash118
پنج شنبه 08 مهر 1389, 19:08 عصر
با سلام دوست خوبم
بفرمایید این کلاس کارتون رو راه می اندازه
موفق باشین

mehdi.mousavi
پنج شنبه 08 مهر 1389, 19:47 عصر
با سلام دوست خوبم بفرمایید این کلاس کارتون رو راه می اندازه
موفق باشین


سلام.
لطفا از این پس اگر کدی رو از جایی قراره کپی کنید، لینک اصلی به مقاله (http://www.codeproject.com/KB/edit/AlphaBlendedTextControls.aspx) مربوطه رو نیز قرار بدید تا استفاده کننده با مشکلات یا راه کاری های دیگه ای که در اون ارتباط مطرح شده نیز آشنا بشه. بطور مثال فردی در انتهای همین مقاله، روش دیگه ای رو ذکر کرده که خوندنش خالی از لطف نیست.

در این روش، شما میتونید کلاس جدیدی ایجاد کرده، اونو از TextBox مشتق کنید. سپس با override کردن CreateParams و تغییر ClassName مربوطه، Effect مورد نظر رو ایجاد کنید:

public class MyEditBox : TextBox
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName);

protected override CreateParams CreateParams
{
get
{
CreateParams prams = base.CreateParams;
if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
{
prams.ExStyle |= 0x020; // transparent
prams.ClassName = "RICHEDIT50W";
}
return prams;
}
}
}


موفق باشید.

arefba
جمعه 09 مهر 1389, 00:25 صبح
ممنون
دوستان میشه یکم در مورد ترز کار این سورس بحث کنید
راستی چطور ازش استفاده میشه یکم گیج کنندست

mehdi.mousavi
جمعه 09 مهر 1389, 00:56 صبح
ممنون
دوستان میشه یکم در مورد ترز کار این سورس بحث کنید
راستی چطور ازش استفاده میشه یکم گیج کنندست

سلام.
اگر منظورتون این 19 خط کدی هستش که در انتها گذاشتم، مطلب پیچیده ای نداره. CreateParams پارامترهای ایجاد کردن یک پنجره رو تعیین میکنه. ابتدا پارامترهای تعیین شده برای پنجره فعلی گرفته میشه، سپس ExStyle اون با عدد 0x20 که نشون دهنده پیام WS_EX_TRANSPARENT هستش، جمع میشه تا پنجره Transparent بشه. در نهایت ClassName پنجره به RICHEDIT50W تغییر میکنه، تا از RichEdit در Common Control های نسخه 5 استفاده بشه و Effect مورد نظر بدست بیاد. از اونجاییکه RichText Edit Control در فایل msftedit.dll تعریف شده، ابتدا اون Library رو Load میکنیم که وقتی ClassName اش آدرس میشه مشکلی پیش نیاد. در نهایت کلاسی تعریف کرده ایم و از TextBox اونو مشتق کرده ایم تا بتونیم هر جا که به چنین TextBox ای نیاز بود، از اون استفاده کنیم.

برای استفاده از این کلاس کافیه تا هر جا در کدتون TextBox دارید، اونو با MyEditBox جایگزین کنید تا به TextBox با پس زمینه شفافتون برسید.

موفق باشید.

پاورقی: اگر توضیح در مورد Source ای که براتون Upload کرده اند میخواهید، لطفا به مقاله ای که لینکش رو دادم رجوع کنید.

flash118
جمعه 09 مهر 1389, 01:21 صبح
با سلام مجدد
آقا مهدی دوست عزیز ممنون بخاطر نکته خوبتون ولی عزیز اگه منبعش بود من قرار می دادم این تو سیستم من بود من تا بحال تو پست هام هر جایی یادم بوده یا برنامه هر کس رو برای نمونه گذاشتم اشاره کردم امیدوارم درک کنید که از روی عمد یا چیز دیگه من این کارو نکردم بگذریم
-----------------------------------------------
خوب و اما سئوال شما دوست عزیز بفرمایید من همون کلاس رو. برات به صورت یه کامپوننت در آوردم دیگه ادامش فکر کنم دیگه راحت شده در ضمن فقط تکس باکس نیست موفق باشین
در آخر بازم تاکید میکنم که منبع یادم نیست نمی دونم از کجاست ولی میدونم از یه سایت خارجی دانلودش کردم امیدوارم قانع کننده باشه موفق باشین