PDA

View Full Version : مشکل در تبدیل پروژه به ظاهر XP



shamsoft
سه شنبه 19 دی 1385, 19:19 عصر
به عکس زیر نگاه کنید:

http://i1.tinypic.com/4cskh6o.gif
این عکس از یک فرم که مثلا به ظاهر XP تبدیل شده گرفتم. ولی Option Button هایی که در Frame قرار بگیرند با پس زمینه سیاه ظاهر می شوند ولی اونایی که داخل Frame نیستند به درستی نمایش داده میشن. می خواستم ببینم کسی با این مشکل بر نخورده و راه حلی براش نداره
در ضمن برای تبدیل به ظاهر XP از فایل Res استفاده کردم

Payman62
سه شنبه 19 دی 1385, 19:42 عصر
سلام.
6 ماه پیش کلی سر این موضوع بحث کردیم و به جایی نرسیدیم.
البته این سایت نه یه سایت دیگه.

shamsoft
سه شنبه 19 دی 1385, 22:09 عصر
پس فکر کنم منم باید بی خیال بشم. پس باید دنبال یه Ocx برای Option Buton بگردم. اگه کسی ظاهر ایکس پی رو واسه آپشن باتن داره بزاره. ممنون میشم

shamsoft
سه شنبه 19 دی 1385, 23:34 عصر
کنترل هم خودم پیدا کردم
از پیمان جان هم به خاطر کمکش متشکرم

oVERfLOW
چهارشنبه 20 دی 1385, 13:11 عصر
نباید مشکل خاصی باشه
شما کافیه توی رویداد Initialize از فرم اصلی تابع زیر رو صدا بزنید

Public Declare Function InitCommonControls Lib "COMCTL32" () As Long
حالا توی فایل Res یا مجزا کنار فایل اجرایی‌تون یه فایل Manifest ایجاد کنید و توش مواد لازم رو بنویسید

دیگه نباید مشکل خاصی باشه

shamsoft
چهارشنبه 20 دی 1385, 14:25 عصر
ولی بازم این مشکل رو داره

Payman62
چهارشنبه 20 دی 1385, 18:19 عصر
سلام.
آره این مشکل هست و به نظر میرسه کاریشم نمیشه کرد.

Ner'zhul Arthas
پنج شنبه 21 دی 1385, 00:35 صبح
کافیه آپشن باتون رو توی یه پیکچر باکس بذارید. مشکل حل میشه.

shamsoft
پنج شنبه 21 دی 1385, 07:03 صبح
آره درست شد. Ner'zhul Arthas جان دستت درد نکنه
آقا پیمان شما هم دیگه به جواب رسیدید :D

Payman62
پنج شنبه 21 دی 1385, 15:31 عصر
سلام.
من این روش رو بلد بودم. تو یکی از برنامه هام هم از این روش استفاده کردم. ولی روش اصولی و حرفه ای نیست. چون اگر تم ویندوز رو عوض کنی ممکنه لازم باشه شکل فریم عوض شه ولی اگه پیکچر باکس باشه ثابت میمونه و با تم جدید هماهنگ نمیشه.

Ner'zhul Arthas
پنج شنبه 21 دی 1385, 16:12 عصر
پیکچر باکس رو توی فریم بذارید حله.
بعد مگه فریم ها با تم ویندوز عوض میشن؟
فقط رنگ پس زمینشون عوض میشه.
که میتونید رنگ پس زمینه ی پیکچر باکس رو با پس زمینه ی فریم یکی کنید.
بدرد استیلش رو هم نون کنید.

حامد مصافی
شنبه 23 دی 1385, 12:51 عصر
سلام
این مشکل از خود وی بی نشات می گیره و لازم نیست شما خودتونو نگران اون بکنید
در حالت تم ویندوز سعی می کنه بک گراند یک فریم رو رنگ بکنه و Border جدیدی برای اون ترسیم بکنه. اما وی بی از کنترل های Light یا Windowless Controls پشتیبانی می کنه پس هیچ کنترل Container ی نباید در برنامه های وی بی مورد Paint شدن قرار بگیره چون ممکنه یکی از این کنترل های سبک رو محو بکنه. بنابرین مایکروسافت کنترل فریم (کنترل ذاتی وی بی) رو در زمره کنترل های قابل اعمال تم قرار نداده! اما مشکل وقتی بوقوع می پیونده که ویندوز شعورش نمی رسه که وقتی Parent رو ترسیم نمی کنه لا اقل کنترل Child رو Lock نکنه. به همین دلیل کنترل فرزند شما نه توسط ویندور refresh میشه و نه اجازه این کار به خودش داده میشه و نتیجه رو هم که خودتون ملاحظه فرمودید.
برای حل این مشکل می تونید از کنترل XPFrame (که توسط بابک زواری قبلاً در همین انجمن Upload شده) استفاده کنید. که البته در حالت غیر XP Theme هم ظاهر XP رو حفظ می کنه.
یا اینکه کنترل های رادیویی مورد نظرتونو تحت ولایت فرم قرار بدید و فقط موقعیتش رو با فریم تنظیم کنید.