تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 3 از 3

نام تاپيک: تغيير وضوح صفحه نمايش از طريق برنامه

  1. #1
    داره خودمونی میشه
    تاريخ عضويت
    Sep 2005
    محل سكونت
    ديار سربداران
    پست ها
    160

    6 تغيير وضوح صفحه نمايش از طريق برنامه

    تغيير وضوح صفحه نمايش از طريق برنامه

    بر گرفته از سايت مجله كامپيوتر و ارتباطات





    تغيير وضوح نمايش معمولا در برنامه هايی كه به طور تمام صفحه اجرا می‌شوند كاربرد دارد. در اين برنامه‌ها برنامه‌نويس تمايل دارد كه برنامه تمام صفحه را بپوشاند در حالی كه تغيير اندازه گرافيك و مختصات اشياء متناسب با وضوح جاری ويندوز كاری دشوار و گاهی اوقات غير ممكن است. به همين دليل بهترين راه اين است كه برنامه‌نويس برنامه اش را برای يك وضوح خاص مثلا ٦٤٠x٤٨٠بنويسد و در زمان اجرا اگر وضوح ويندوز چيزی غير از اين بود برنامه وضوح نمايش را بصورت خودكار روی ٦٤٠x٤٨٠ قرار دهد. از برنامه‌هايی كه بطور تمام صفحه اجرا می‌شوند می‌توان به برنامه‌های چند رسانه‌ای اشاره كرد.


    استفاده از Direct X می‌تواند يك راه حل باشد اما برای خيلی از برنامه‌نويسان كه مايلند به دلايل مختلف برنامه‌شان فقط از امكانات GDI ويندوز و محيط برنامه نويسی مورد علاقه شان استفاده كند راه حل مناسبی نيست.

    در API ويندوز تابعی وجود دارد به نام ChangeDisplaySettings كه وظيفه آن اعمال تغييرات و تنظيم ابزار نمايشی اعم از صفحه نمايش يا چاپگر می‌باشد. حال به توضيح مختصر در مورد نحوه استفاده از اين تابع برای تغيير وضوح صفحه نمايش می‌پردازيم.


    ; ( LONG ChangeDisplaySettings ( LPDEVMODE lpDevMode , DWORD Flags

    پارامتر اول اشاره گر به ساختاری است كه توسط آن وضوح افقی و عمودی و عمق رنگ مورد نظر و حتی فركانس جاروب صفحه را می‌توان تعيين كرد. پارامتر دوم تعيين كننده رفتار تابع هنگام تغيير وضوح است كه به عنوان مثال وضوح مورد درخواست ابتدا آزمايش شود يا مستقيما و بدون آزمايش تغيير وضوح اعمال گردد.
    ساختار DEVMODE شامل اعضای مهم زير است :
    وضوح افقی بر حسب پيكسل dmPelsWidth
    وضوح عمودی بر حسب پيكسل dmPelsHeight
    عمق رنگی صفحه ( بيت بر پيكسل ) dmBitsPerPel
    تعيين كننده معتبر بودن مقدار هر يك از عضوهای صاختار dmDisplayFlags

    حال فرض كنيد می‌خواهيم توسط برنامه وضوح صفحه نمايش را روی 480x640 پيكسل با عمق رنگ 16 بيتی (65536 رنگ) تنظيم كنيم. برای اين كار مراحل زير را انجام می‌دهيم.

    ; DEVMODE dm
    ; ( ( memset ( &dm , 0 , sizeof ( DEVMODE
    ; ( dm.dmSize = sizeof ( DEVMODE


    كاری كه سه خط بالا انجام می‌دهد فقط مقدار دهی اوليه ساختار DEVMODE است.


    ; dm.dmPelsWidth = 640
    ; dm.dmPelsHeight = 480
    ; dm.BitsPerPel = 16

    اين سه خط برنامه هم مشخصات وضوح مورد نظر ما را در ساختار DEVMODE ذخيره می‌كند.


    ; dm.DisplayFlags = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL

    خط فوق هم در واقع تعيين می‌كند كه كدام عضوها در ساختار DEVMODE معتبر هستند و در هنگام اجرای تابع بايد به آنها ترتيب اثر داده شود.
    پس از انجام مراحل بالا می‌توانيم تابع ChangeDisplaySettings را به صورت زير فراخوانی كنيم :


    ; ( ChangeDisplaySettings ( &dm , 0


    فرستادن مقدار صفر به پارامتر دوم بيانگر اين است كه ما می‌خواهيم تغيير وضوح بلافاصله و بدون آزمايش اعمال گردد. پس از اجرای اين تابع وضوح صفحه نمايش به 640x480 پيكسل با عمق رنگی ١٦ بيت تغيير خواهد كرد و اين تغييرات تا هنگام شروع مجدد ويندوز يا اعمال تغيير وضوح بعدی باقی خواهد ماند. البته وضوح مورد درخواست شما بايد توسط كارت گرافيكی و مونيتور پشتيبانی شود در غير اينصورت هيچ تغييری در وضوح صفحه نمايش ايجاد نخواهد شد.

    براي بر داشتن سورس كامل مقاله به آدرس وب سايت مجله مراجعه كنيد

    برگرفته از سایت برنامه نویس

  2. #2
    حـــــرفـه ای Elfin-D's Avatar
    تاريخ عضويت
    Aug 2005
    پست ها
    7,785

    پيش فرض

    ادرس وب سايت مجله رو ميدي؟

  3. #3
    داره خودمونی میشه
    تاريخ عضويت
    Sep 2005
    محل سكونت
    ديار سربداران
    پست ها
    160

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •