المساعدة - البحث - قائمة الأعضاء - التقويم
نسخة كاملة: كيف نغير دقة الشاشة في++ c
برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة > منتديات لغات البرمجة العام > منتدى مبرمجي C و ++C و C++.NET > أرشيف منتدى قسم السي ++
short wave
السلام عليكم ورحمة الله
أرجو من الأخوة مساعدتي في هذا الموضوع فلم أستطع إيجاد تابع الapi الذي يساعدني في ذلك .
ولكم جزيل الشكر ..
HGB
السلام عليكم ,,,

ياأخي الكريم جاهدت سابقا لمعرفة الدالة التي تقوم بذلك أنا أيضا ... لكني توصلت الى الدوال التابعة لل DirectX API وخاصة DirectDraw ...

توجد دالة تدعى SetDisplayMode () لها برامترات للدقة الشاشة ودقة الالوان ,,,

وأنا أعرف التعامل مع واجهات DirectX 8 و 9 و7 لذا سأفترض أن لديك واجهة DirectDraw 7 وبالمناسبة هي الأخيرة .,,,,حتى الان ,,

لن أفصل الان فقط امهلني قليلا وسأعطيك ردا مفصلا ...
عموما توجد 3 دوال مهمة لذلك هي
DirectDrwCreateEx لأنشاء الكائن LPDIRECTDRAW ,,, وهو الكائن الذي به الدالة SetDisplay Mode التي سنستخدمها ,,

لكن قبل ذلك يجب أن نستدعي الدالة SetCooperativeLevel ,,لأتاحة امكانية تغيير دقة العرض للمستخدم ...

هذا مؤقتا ,,,

وبالتوفيق ,,,
Ahmedvc
تغير عرض الشاشة فى Win32 :

هذه دالة تقوم بالذى تريده و نحتاج ملفات windows.h من غير directx regular_smile.gif

void ChangeResolution(int width, int height)
{
DEVMODE dmSettings;

memset(&dmSettings,0,sizeof(dmSettings));

if(!EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&dmSettings))
{
MessageBox(NULL, "Error in Enum Display Settings", "Error", MB_OK);
return;
}

dmSettings.dmPelsWidth = width;
dmSettings.dmPelsHeight = height;
dmSettings.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;

int result = ChangeDisplaySettings(&dmSettings,0);

if(result != DISP_CHANGE_SUCCESSFUL)
{
MessageBox(NULL, "Display Mode Not Compatible", "Error", MB_OK);
PostQuitMessage(0);
}
}

وهى تحقق ان شاء الله الهدف الذى تريده ولو اردت كيفية عمل Full Screen

فأنا فى الخدمة
HGB
السلام عليكم ,,,

ماشاء الله عليك ياأخ Ahmedvc فخير الكلام ماقل ودل ,,,,

ولم تترك لي ماأضيفه فهذه الدالة تفي بالمطلوب تماما ,,,

لكن اذا رغبت أخي short wave بالمزيد يمكن أن أريك طريقة ال DirectX ,,, لكنها تحتاج الى مكتبة DDraw.LIB ,,,

وبالتوفيق
short wave
السلام عليكم ورحمة الله ..
في الحقيقة أنا شاكر جدا تعاونكم يا أخ Ahmedvc ويا أخ HGB
وبصراحة فأنا للمرة الأولى أتعامل مع المنتديات وقد أعجبت بالتعاون من قبل الجميع

إن عدنا إلى السؤال المطروح سابقا أريد أن أضيف أنني أريد عمل DLL صغيرة تساعد المبرمج في لغة ثانية أن يستفيد منه في تغيير إعدادات الشاشة وليكن بعلمك أني لست محترفا وإنما أننا مبتدىء في C++ ولم أتعامل حتى الآن مع البرمجة المرئية فيها لذلك
حبة حبة يا علام

لقد حصلت على التابع التالي والذي يقوم بالمهمة المطلوبة ولكن لم أتمكن من استعمالها فقد كانت له طريقة لم أألفها في استدعاء التوابع ..

EnvironmentVariable("ScreenResolution", WindowResolution) = "800,600"
فإن كان هناك أي مساعدة أخرى فأنا لكممن الشاكرين
والسلام يا إخوان
HGB
السلام عليكم ,,,

ياأخي الكريم لاأعتقد أن هناك داعي لاستخدام ال EnvironmentVariable لانشاء ال DLL .. يكفي ان تكتب ال DLL بالسي ++ وتجعله يستلم فقط بارمترين أو ثلاث من الانواع الصحيحة int

ليسهل التكامل بين اللغات ... وداخل هذا ال DLL يوجد استدعاء صريح للدالة ( ChangeResolution(int width, int height الذي تفضل أخي Ahmedvc

بكتابتها ...
وطبعا ستمرر البارمترات القادمة من اللغة الاخرى الى هذه الدالة .. وسيتم كل شيء باذن الله ,,,

لكن توجد عدة نقاط حول التكاملية القصوى بين لغات البرمجة ,,, يمكنك كتابة دالة DLL يمكن استدعاءها من عدد كبير من لغات البرمجة .. ولكن عند تضمين لغات كال JavaScript

VisualBasicScrit يجب عندها كتابة DLL بحيث يكون COM ,,
ولاأعتقد انك تريد ان تغوص لهذه الدرجة ,,,

لذا فقط اكتب دالة ال DLL وضع يها الدالة اعلاه وسيعمل الكود باذن الله ...
chik
السلام عليكم,
لاحظت أنها فاتتني نقاشات مهمة.
فيا ريت نواصل في مثل هذه المواضيع بعد عطلة العيد إن شاء الله.
عيد سعيد للجميع وبالتوفيق إن شاء الله.
هذه "نسخة - خفيفة" من محتويات الرئيسية للإستعراض الكامل مع المزيد من الصور والخيارات الرجاء إضغط هنا.
Invision Power Board © 2001-2009 Invision Power Services, Inc.