PDA

View Full Version : ایجاد خاصیت fore color برای دکمه ها



mohsengrisly
شنبه 05 آذر 1384, 18:39 عصر
با سلام خدمت همه دوستان
ایا می توان برای دکمه ها هم چنین خاصیتی تعریف کرد تا بتوان رنگ عنوان دکمه را تغییر داد

mohsengrisly
یک شنبه 06 آذر 1384, 10:36 صبح
باز هم سلام به همه
ببینم قرار نیست کسی چیزی بگه . راهی. نظری . روشی

Hamedm
یک شنبه 06 آذر 1384, 12:09 عصر
سلام

تنها راهی که به ذهنم میرسه اینه که یک کامپوننت خودت طراحی کن و در اون Command رو به ارث ببر بعد یک Property به نام ForeColor و نیز Text بهش اضافه کن. برای نمایش متن روی Command از یک label استفاده کن. باید مکان Label رو طوری تنظیم کنی که همیشه در وسط Command باشه. بعد برای تغیر در متن Command باید از این به بعد به جای caption از Text استفاده کند. در کد خواص Text مقدارشو به caption برچست بده. در خواص ForeColor هم رنگ متن label رو عوض کن.


در پناه حق موفق باشید و پرتوان

mohsengrisly
یک شنبه 06 آذر 1384, 12:43 عصر
از توجه شما ممنونم
اما یقینا باید راه ساده تری هم باشد تمام تلاش من برای این است که فقط با کد این مشکل حل شود و
از اضافه کردن فایل به هر صورتی به پروژه پرهیز گردد
با این حال ممنونم

mRizvandi
یک شنبه 06 آذر 1384, 19:40 عصر
سلام

پیشنهاد من اینه که دنبال این مطلب باشی که ببینی که در برنامه ماشین حساب ویندوز چه اتفاقی برای دکمه ها افتاده. Messageی تابع APIی بالاخره باید یه چیزی باشه دیگه
موفق باشی
;-)

mohsengrisly
یک شنبه 06 آذر 1384, 21:04 عصر
از توجه شما ممنونم ب
بی شک یک تابع وجود دارد اما یقینا جز اون 700 تابع معمول که نسبت به بقیه رایج تره نیست
اگر بود می دونستم .اینم که ممکنه کنترل سفارشی باشه خیلی کمه و باید در نظر بگیرید که ماشین حساب ویندوز رو با ویبی ننوشتن دوست عزیز خلاصه اینکه من تازه متوجه شدم چقدر بعضی از کنترل ها ضعف دارند
از شما ممنونم و منتظر نظرات بسیار مفید شما و بقیه دوستان هستم

ehsan_ansaripoor
دوشنبه 07 آذر 1384, 14:32 عصر
دوست عزیز در اینکه یکسری از کنترلها ضعف دارند شکی نیست ولی برای رفع این ضعف باید از OCX ها استفاده کنیم تا به نتیجه مطلوب برسیم اگر شما هم از برنامه نویسان DOS باشید متوجه می شوید که برای درست کردن یک دکمه ساده چند خط کد باید می نوشتیم
بنده که با تمام ضعف های زبان های برنامه نویسی ویندوز قدرشون را می دونم

mohsengrisly
دوشنبه 07 آذر 1384, 15:36 عصر
از توجه شما ممنونم
اما اگر قرار باشد برای هر ضعفی یک ocx نوشت خب فکرش رو بکنید به یک برنامه حرفه ای چند تا ocx باید اضافه کرد
نمیشه که برای یک برنامه n تا ocx گذاشت
من شخصا تا سر حد ممکن در برنامه ها از کد استفاده می کنم حتی اگر کمی پیچیده تر هم شود اینطوری خیال همه راحت میشه
اما در مورد مشکل فوق به یه جاهایی رسیدم . کامل شد می ذارم اینجا همه استفاده کنند (با کد نویسی)
البته هنوزم با اشتیاق کامل منتظر نظرات دوستان هستم

حامد مصافی
دوشنبه 07 آذر 1384, 18:15 عصر
سلام
اولاً که اینگونه کنترل ها رو بهتره به شکل UserControl به پروژه اضافه کنید
اینو ببین زحمت کاملتر کردنشم خودت بکش

PalizeSoftware
دوشنبه 07 آذر 1384, 18:17 عصر
دوست عزیز نیاز به توضیح نیست که اگر شما UserControl موردنظر خودت رو که در این مبحث یه دکمه هست طراحی کنی و درون پروژه قرار بدی دیگه نیازی به ocx‌ نیست و همیشه با پروژه هست و البته همه‌اش هم کد.
مورد سوال شما خیلی راحت از طریق SubClassing قابل پیاده‌سازی است ولی چه بهتر که UserControlی طراحی کنی که هر جور خواستی جلو ببری.
مثال زیر یه ماشین‌خساب ساده است (و البته با باگ‌های احتمالی) که از یه کنترل جدید بعنوان دکمه استفاده کرده.

mohsengrisly
دوشنبه 07 آذر 1384, 21:32 عصر
از توجه شما دوستان عزیز ممنونم
خوشبختانه من هم به نتیجه رسیدم البته هنوز نمونه های شما دوستان عزیز را ندیدم اما بی شک بسیار مفید خواهد بود
از لطف و توجه شما ممنونم
مشکل ارسال فایل هم با استفاده از یک مرور گر جانبی خوشبختانه پس از چندین ماه حل شد
فکر می کنم استفاده از این روش قدری ساده تر باشد
امیدوارم مورد توجه دوستان قرار گیرد

mRizvandi
سه شنبه 08 آذر 1384, 19:54 عصر
سلام

من فقط یک نکته رو به عنوان احتمالا آخرین مورد عرض می کنم و اون هم اینه که دکمه های ماشین حساب ویندوز از کلاس Button هستند پس میشه از اونها استفاده کرد به جای استفاده از دکمه های وی بی
;-)

حامد مصافی
سه شنبه 08 آذر 1384, 20:44 عصر
محسن خان جالب بود!

mohsengrisly
سه شنبه 08 آذر 1384, 22:53 عصر
از نظر و لطف شما ممنونم حامد جان
جناب رضوانی اگر ممکنه کمی بیشتر و کامل تر توضیح بفرمایید

PalizeSoftware
سه شنبه 08 آذر 1384, 23:07 عصر
جناب رضوانی اگر ممکنه کمی بیشتر و کامل تر توضیح بفرمایید
رضوانی نه، ریزوندی!
اگه اشتباه نکنم منظور دوست عزیزم باید این باشه که می‌تونی از طریق CreateWindowEx دکمه‌ها رو توی وی‌بی با کلاس Button ایجاد کنی. که البته این کار مستلزم بکارگیری Subclassing‌ هست که بتونی اعمال کلیک و ... رو تشخیص بدی. در ضمن می‌تونی استیل‌های دکمه‌های ماشین‌حساب ویندوز رو هم با ++SPY استخراج کنی(ابزاری که با وی‌بی همراه هست، یا کمی سخت‌تر خودت بدست بیاری) و به دکمه‌ها انتساب بدی.

PalizeSoftware
سه شنبه 08 آذر 1384, 23:12 عصر
محض اطلاع باید بگم که Window Style دکمه ماشین‌حساب این فلگ‌ها رو شامل می‌شه:
WS_CHILDWINDOW
WS_VISIBLE
BS_PUSHHBUTTON
BS_TEST
که بصورت عددی 50000000(هگزا) هست.

و Extended Style هم فلگ‌های زیر رو داره:
WS_EX_LEFT
WS_EX_LTRREADING
WS_EX_RIGHTSCROLLBAR
WS_EX_NOPARENTNOTIFY
که بصورت عددی 00000004(هگزا) می‌شه.
همین!