الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل يوجد مكتبة تساعد على الرسم في واجهات Console ؟

بدأه Xacker في 26 مارس 2009 · 10 رد · 953 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

انهيت مشروعي تقريباً لكنه وصل إلى 1000 سطر "حتى الآن" ربما أقل من النصف بقليل خاص بتوابع الرسم.

هل يوجد مكتبة تساعد على الرسم في واجهات console بأبسط الأشكال الهندسية شكلاً، المستطيل، هذا فقط ما يلزمني.

أعترف بأنه يمكنني تقليص عدد الأسطر وتحسين كلاس الرسم الذي كتبته لهذا لكن ربما أكون أعيد اختراع العجلة، فضلت السؤال أولاً.

استخدمت في الرسم توابع API و حروف ASCII وحصلت على النتائج المطلوبة لكن هناك الكثير من الـ dirty code لدي :blush:

الكومبايلر: VC++ 2008

شكراً سلفاً

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#2

السلام عليكــم ورحمـة الله وبركاتــه ،،

graphics.h

اقتباس
انهيت مشروعي تقريباً لكنه وصل إلى 1000 سطر "حتى الآن" ربما أقل من النصف بقليل خاص بتوابع الرسم.
اقتباس

you can use a .lib file

#3

شكراً جزيلاً

سأنظر في أمر المكتبة، لكن سؤال، هل يمكن التعامل مع نافذة الـ console باستخدام دوال API الخاصة بالرسم كالموجودة في مكتبة GDI+ ؟

لأني حاولت على سبيل المثال استخدام دوال مثل SetBkColor و SetTextColor لكنها لم تعمل.

مثال - الكود الذي وضعه الأخ فهد هنا: /index.php?showtopic=164314

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

السلام عليكــم ورحمـة الله وبركاتــه ،،

تستطيع استخدام دوال الرسم :

هذا مثال لرسم مربع باستخدام SetPixel

#include<windows.h>
 int main()
 {

 int i,j;
 HWND mycommand=GetConsoleWindow();
 HDC myhdc=GetDC(mycommand);
 for(i=10;i<50;i++)
 {
	 for(j=0;j<50;j++)
	 {
	  SetPixel(myhdc,i,j,RGB(0,255,0));
	 }
 }
 return 0;
 }

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 26 مارس 2009 في 20:59

tvquran_6.gif

#5

السلام عليكــم ورحمـة الله وبركاتــه ،،

وهذا مثال آخر

#include<windows.h>

int main()
{


HWND mycommand=GetConsoleWindow();
HDC myhdc=GetDC(mycommand);

Rectangle(myhdc,0,0,100,100);


cin.get();
return 0;
}
tvquran_6.gif

#6

لا يتم رسم شئ لدي، وهذا ما يحيرني.

هل أقوم بإنشاء مشروع بشكل صحيح؟ :wacko:

طيب حتى لا أكثر الكلام أخي فهد هل لك أن ترفق لي المشروع بكامل ملفاته، أريد أن أعرف ما الذي موجود لديك وليس موجود لدي!

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7

السلام عليكــم ورحمـة الله وبركاتــه ،،

هذا الملف مرفق

aswed.rar

tvquran_6.gif

#8

شكراً أخ فهد

لا اختلاف بين المشروع لدي ولديك.

لكن انتبهت أن دوال الرسم لا تظهر أي شئ إن قمت بتنفيذ المشروع من خلال الكومبايلر. بينما لو قمت بتنفيذه من الخارج (الملف التنفيذي) تعمل دون إشكال.

هل هذا منطقي؟

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#9

السلام عليكــم ورحمـة الله وبركاتــه ،،

جرب:

اعمل مشروع win32 console applction خالي .

tvquran_6.gif

#10

تمام :thumb_up:

أنشأت مشروع console بدون precompiled headers ثم أزلت منه جميع المكتبات الأخرى، وتم التنفيذ بنجاح.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#11

السلام عليكم ورحمة الله وبركاته،،

ولكن لماذا لا يمكن الرسم على Console وهي في وضع ملء الشاشة...؟

تحياتي.............:)

دولة الخلافة الاسلامية في المخاض الاخير وميلادها قريب

حزب التحرير : التزم الطريق الصحيح الشرعي الوحيد لاعادة دولة الخلافة الاسلامية .

الامة الاسلامية متعطشة لقيادة مخلصة لتذوق حلاوة النصر ولن يكون ذلك الا بعودة الخلافة الاسلامية

الامة الاسلامية تحتاج لاحداث تسحقها سحقا وتمعسها معسا لتفكر تفكيرا جماعيا بالتغير لان وحدة المشاعر لوحدها لاتكفي وهذة الاحداث كلها خير

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…