View Full Version : سوال: تغيير شكل فرم طراحي شده در نسخه هاي مختلف ويندوز
meisam.jafarian
دوشنبه 12 بهمن 1388, 09:56 صبح
با سلام خدمت دوستان عزیز.
یک فرم به شکل زیر طراحی کرده ام:
http://barnamenevis.org/forum/d:\\3.jpg
اما در کامپیوتر های مختلف و ورژن های مختلف ویندوز همه ظاهرش به هم میریزد:
http://barnamenevis.org/forum/d:\\5.jpg
لطفا کمکم کنید .در ضمن با تغییر رزلوشن این تغییرات بیشتر هم میشود .چطور فرمی طراحی کنم که وابسته به رزلوشن نباشد؟
ببخشيد مجبور شدم عكس ها رو پيوست كنم. عكس با نام 3 فرم درسته و عكس به نام 5 فرم به هم ريخته.
Nima_NF
دوشنبه 12 بهمن 1388, 13:52 عصر
اگر قرار هست که اندازه فرم ثابت نباشد و تغییر کنید، باید از طریق کدنویسی تغییرات را انجام دهید.
چیزی که بنده مشاهده کردم، box رنگ سبز شما هست که همان طور ثابت می ماند. از طریق کدنویسی و توابعی مانند GetWindow باید اندازه دیالوگ را دریافت کنید و سپس اندازه کنترل ها را متناسب با اندازه دیالوگ تغییر دهید. هنگامی که سایز تغییر کند پیام WM_SIZE یا OnSize در MFC ارسال می شودو شما در این پیام می توانید دستور تغییر سایز کنترل ها یا رسم کردن را به WM_PAINT بفرستید.
تاپیک ها در این باره به همراه مثال های مختلف:
http://barnamenevis.org/forum/showthread.php?t=140938
http://www.barnamenevis.org/forum/showthread.php?t=88795
http://barnamenevis.org/forum/showthread.php?t=154156
meisam.jafarian
سه شنبه 20 بهمن 1388, 06:14 صبح
خيلي ممنون جواب داد ولي نياز به كلي محاسبه داره و بايد براي تمام كنترل هاي داخل فرم طول و عرض محل كنترل و طول و عرض اندازه كنترل رو نسبت به اندازه فرم در آورد و آنها رو ضريبي از طول و عرض فرم در نظر گرفت كه براي آدماي تنبلي مثل من:خجالت: يك كمي سخت است.
آيا راهي به غير از اين راه و ساده تر هم وجود داره؟
Nima_NF
سه شنبه 20 بهمن 1388, 14:44 عصر
آیا راهی به غیر از این راه و ساده تر هم وجود داره؟
برنامه را طوری بنویسید که اگر از رزولوشن خاصی بزرگ تر شد، همیشه اندازه های کنترال ها ثابت و در جای مشخص باشند و باقی مناطق همان رنگ زمینه پنرجه را داشته باشد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.