السلام عليكم
لى طلب صغير
اريد ان اعرف كيف يتم انشاء الموس فى تطيقات الدوس
وكيف اقوم بتحديد الحدث على الكيبورد
f5 او زر delete
كيف اتعامل مع كل هذا
ياريت اكواد هذه العمليات ولكن اتمنى لو يكون لها شرح توضيحى
شكرأ ;)
السلام عليكم
لى طلب صغير
اريد ان اعرف كيف يتم انشاء الموس فى تطيقات الدوس
وكيف اقوم بتحديد الحدث على الكيبورد
f5 او زر delete
كيف اتعامل مع كل هذا
ياريت اكواد هذه العمليات ولكن اتمنى لو يكون لها شرح توضيحى
شكرأ ;)
_____________________________
C Language && Windwos_API
_____________________________
بسم الله الرحمن الرحيم
أولا بالنسبة لتوظيف الكيبورد ف برنامجك فهذا يتطلب معرفة الاسكى كود لكل زار موجود ف الكيبورد
حيث اولا يوجد نوعان من المفاتيح
عندك ياسيدى المفاتيح العادية وهى a,b,c,…………..z عند الظغط على اى واحد منهم يتم ارسال لوحة المفاتيح للجهاز one byte وهى كود الزر اما اذا تم الضغط على أى زار تانى وليكن f1 or left or page down يعنى اى زر غير ازرار الكتابة يتم ارسال two byte للجهاز
البايت الاولى تكون صفر والبايت الثانية هى الكود الحقيقى حيث البايت الاولى تدل على ان هذا الزر من المفاتيح الممتدة زى ايضا ctrl alt
ودة كود بوضح اكتر
#include <iostream>
#include <conio>
void main()
{
int k1,k2;
while( (k1=getch())!='\r' )
{
if(k1==0)
{
k2=getch();
cout<<"the code is\t"<<k2;
}
else
cout<<"norlmal\t"<<k1;
}
}حيث عند الضغط على مفتاح a مثلا يعطى لك انة زر عادى وال acii code بتاعة 97
ولك عند الضغط على المفتاح m يكون الكود بتاعة 109
أما عند الطغط على f1 ( فهذا المفتاح من الانواع التى لها two byte ) وبالتالى يكون الascii code هو59
وأيضا زر الdelete هو 83
بالنسبة للسؤال الثانى سأضع كود لك عبارة عن buttons وmouse
ولكن سأشرحة غدا بأذن الله لانة طويل وعاوز كتابة كتيييييييييييييييييييييير
#include <process.h>
#include <graphics.h>
#include <stdlib>
#include <conio.h>
#include <dos.h>
//------------------------------------------------------------------------------
class GRAPHICES
{
private:
void OpenGraphics(void);
void credit(void);
void Sound();
void creadit();
void write1();
void PIXEL();
void back(void);
void write2();
void ex(void);
void closing();
public:
void Openning(void);
};
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void GRAPHICES::OpenGraphics(void)
{
int driver=0,mode;
initgraph(&driver,&mode,"C:\\BC5\\BGI");
}
//------------------------------------------------------------------------------
void GRAPHICES::Openning(void)
{
OpenGraphics();
back();
}
//------------------------------------------------------------------------------
void GRAPHICES::back(void)
{
OpenGraphics();
int x,y,k=155,k1=-25;
setbkcolor(7);
setfillstyle(1,7);
setcolor(15);
line(90+k,150+k1,170+k,150+k1);
line(90+k,150+k1,90+k,180+k1);
setcolor(8);
line(90+k,180+k1,170+k,180+k1);
line(170+k,180+k1,170+k,150+k1);
setcolor(15);
line(90+k,210+k1,170+k,210+k1);
line(90+k,210+k1,90+k,240+k1);
setcolor(8);
line(90+k,240+k1,170+k,240+k1);
line(170+k,240+k1,170+k,210+k1);
setcolor(15);
line(90+k,270+k1,170+k,270+k1);
line(90+k,270+k1,90+k,300+k1);
setcolor(8);
line(90+k,300+k1,170+k,300+k1);
line(170+k,300+k1,170+k,270+k1);
setcolor(15);
line(90+k,330+k1,170+k,330+k1);
line(90+k,330+k1,90+k,360+k1);
setcolor(8);
line(90+k,360+k1,170+k,360+k1);
line(170+k,360+k1,170+k,330+k1);
setcolor(15);
line(90+k,390+k1,170+k,390+k1);
line(90+k,390+k1,90+k,420+k1);
setcolor(8);
line(90+k,420+k1,170+k,420+k1);
line(170+k,420+k1,170+k,390+k1);
setcolor(15);
line(90+k,450+k1,170+k,450+k1);
line(90+k,450+k1,90+k,478+k1);
setcolor(8);
line(90+k,478+k1,170+k,478+k1);
line(170+k,450+k1,170+k,478+k1);
setcolor(4);
settextstyle(0,0,1);
outtextxy(110+k,161+k1," Add ");
outtextxy(103+k,220+k1,"Display");
outtextxy(105+k,280+k1,"Modify");
outtextxy(105+k,340+k1,"Delete");
outtextxy(105+k,400+k1,"Credits");
outtextxy(115+k,460+k1,"Exit");
//-----------------mouse intialization------------------------------------------
REGPACK reg;
reg.r_ax=0x000;
intr(0x0033,®);
reg.r_ax=0x001;
intr(0x0033,®);
//------------------------------------------------------------------------------
while(1)
{
reg.r_ax=0x003;
reg.r_bx=0x001;
intr(0x033,®);
int x1,y1;
x1=reg.r_cx;
y1=reg.r_dx;
const int COLOR=14;
if(x1>=90+k && x1<=170+k &&y1>=150+k1 &&y1<=180+k1 )
{
setcolor(COLOR);
settextstyle(0,0,1);
outtextxy(110+k,161+k1," Add ");
}
else if(x1>=90+k && x1<=170+k &&y1>=210+k1 &&y1<=240+k1 )
{
setcolor(COLOR);
settextstyle(0,0,1);
outtextxy(103+k,220+k1,"Display");
}
else if(x1>=90+k && x1<=170+k &&y1>=270+k1 &&y1<=300+k1 )
{
setcolor(COLOR);
settextstyle(0,0,1);
outtextxy(105+k,280+k1,"Modify");
}
else if(x1>=90+k && x1<=170+k &&y1>=330+k1 &&y1<=360+k1 )
{
setcolor(COLOR);
settextstyle(0,0,1);
outtextxy(105+k,340+k1,"Delete");
}
else if(x1>=90+k && x1<=170+k &&y1>=390+k1 &&y1<=420+k1 )
{
setcolor(COLOR);
settextstyle(0,0,1);
outtextxy(105+k,400+k1,"Credits");
}
else if(x1>=90+k && x1<=170+k &&y1>=450+k1 &&y1<=478+k1 )
{
setcolor(COLOR);
settextstyle(0,0,1);
outtextxy(115+k,460+k1,"Exit");
}
else
{
setcolor(BLUE);
settextstyle(7,0,5);
outtextxy(150,20,"Main Menu");
setcolor(4);
settextstyle(0,0,1);
outtextxy(110+k,161+k1," Add ");
outtextxy(103+k,220+k1,"Display");
outtextxy(105+k,280+k1,"Modify");
outtextxy(105+k,340+k1,"Delete");
outtextxy(105+k,400+k1,"Credits");
outtextxy(115+k,460+k1,"Exit");
}
//------------------------------------------------------------------------------
if(reg.r_bx==1)
{
x=reg.r_cx;
y=reg.r_dx;
}
if(x>=90+k && x<=170+k &&y>=150+k1 &&y<=180+k1 )
{
setcolor(8);
line(90+k,150+k1,170+k,150+k1);
line(90+k,150+k1,90+k,180+k1);
setcolor(15);
line(90+k,180+k1,170+k,180+k1);
line(170+k,180+k1,170+k,150+k1);
delay(100);
//method u want to call
setcolor(15);
line(90+k,150+k1,170+k,150+k1);
line(90+k,150+k1,90+k,180+k1);
setcolor(8);
line(90+k,180+k1,170+k,180+k1);
line(170+k,180+k1,170+k,150+k1);
delay(170);
closegraph();
x=0,y=0;
//method u want to call
}
if(x>=90+k && x<=170+k &&y>=210+k1 &&y<=240+k1 )
{
setcolor(8);
line(90+k,210+k1,170+k,210+k1);
line(90+k,210+k1,90+k,240+k1);
setcolor(15);
line(90+k,240+k1,170+k,240+k1);
line(170+k,240+k1,170+k,210+k1);
delay(100);
setcolor(15);
line(90+k,210+k1,170+k,210+k1);
line(90+k,210+k1,90+k,240+k1);
setcolor(8);
line(90+k,240+k1,170+k,240+k1);
line(170+k,240+k1,170+k,210+k1);
delay(170);
closegraph();
x=0,y=0;
//method u want to call
}
if(x>=90+k && x<=170+k &&y>=270+k1 &&y<=300+k1 )
{
setcolor(8);
line(90+k,270+k1,170+k,270+k1);
line(90+k,270+k1,90+k,300+k1);
setcolor(15);
line(90+k,300+k1,170+k,300+k1);
line(170+k,300+k1,170+k,270+k1);
delay(100);
setcolor(15);
line(90+k,270+k1,170+k,270+k1);
line(90+k,270+k1,90+k,300+k1);
setcolor(8);
line(90+k,300+k1,170+k,300+k1);
line(170+k,300+k1,170+k,270+k1);
delay(170);
closegraph();
x=0,y=0;
//method u want to call
}
if(x>=90+k && x<=170+k &&y>=330+k1 &&y<=360+k1 )
{
setcolor(8);
line(90+k,330+k1,170+k,330+k1);
line(90+k,330+k1,90+k,360+k1);
setcolor(15);
line(90+k,360+k1,170+k,360+k1);
line(170+k,360+k1,170+k,330+k1);
delay(100);
setcolor(15);
line(90+k,330+k1,170+k,330+k1);
line(90+k,330+k1,90+k,360+k1);
setcolor(8);
line(90+k,360+k1,170+k,360+k1);
line(170+k,360+k1,170+k,330+k1);
delay(170);
closegraph();
x=0,y=0;
//method u want to call
}
if(x>=90+k && x<=170+k &&y>=390+k1 &&y<=420+k1 )
{
setcolor(8);
line(90+k,390+k1,170+k,390+k1);
line(90+k,390+k1,90+k,420+k1);
setcolor(15);
line(90+k,420+k1,170+k,420+k1);
line(170+k,420+k1,170+k,390+k1);
delay(100);
setcolor(15);
line(90+k,390+k1,170+k,390+k1);
line(90+k,390+k1,90+k,420+k1);
setcolor(8);
line(90+k,420+k1,170+k,420+k1);
line(170+k,420+k1,170+k,390+k1);
delay(170);
closegraph();
credit();
}
if(x>=90+k && x<=170+k &&y>=450+k1 &&y<=478+k1 )
{
setcolor(8);
line(90+k,450+k1,170+k,450+k1);
line(90+k,450+k1,90+k,478+k1);
setcolor(15);
line(90+k,478+k1,170+k,478+k1);
line(170+k,450+k1,170+k,478+k1);
delay(100);
setcolor(15);
line(90+k,450+k1,170+k,450+k1);
line(90+k,450+k1,90+k,478+k1);
setcolor(8);
line(90+k,478+k1,170+k,478+k1);
line(170+k,450+k1,170+k,478+k1);
delay(170);
x=0,y=0;
ex();
}
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void GRAPHICES::write1()
{
for(int j=0;j<10;j++){
setcolor(j*70);
settextstyle(1,0,8);
moveto(100,90);
outtext("WELLCOME");
delay(500);
if(j==70*10)
break;
}
sleep(1);
moveto(300,440);
settextstyle(2,0,6);
setcolor(9000);
outtext(" Press Any Key To Continue...");
getch();
}
void GRAPHICES::write2()
{
setlinestyle(2,0,3);
setcolor(BLACK);
for(int j=0;j<10;j++){
//setcolor(j*70);
settextstyle(1,0,8);
moveto(100,90);
outtext("WELLCOME");
delay(500);
if(j==70*10)
break;
}
moveto(300,440);
settextstyle(2,0,6);
setcolor(9000);
outtext(" Press Any Key To Continue...");
//getch();
}
/****************************************banner************************/
void GRAPHICES::PIXEL()
{
int x;
sleep(1);
for(int i=0;i<1000;i++)
{
putpixel(random(640),random(900),random(i));
delay(2);
}
sleep(1);
}
/***************************************************************************/
void GRAPHICES::Sound()
{
sound(400);
delay(400);
nosound();
}
/*****************************************************************************/
void GRAPHICES::creadit()
{
settextstyle(4,0,5);
moveto(0,30);
outtext("BY:");
settextstyle(5,0,5);
setcolor(LIGHTBLUE);
moveto(2,90);
Sound();
outtext("M");
delay(1);
Sound();
outtext("O");
delay(1);
Sound();
outtext("H");
delay(1);
Sound();
outtext("A");
delay(1);
Sound();
outtext("M");
delay(1);
Sound();
outtext("M");
delay(1);
Sound();
outtext("E");
delay(1);
Sound();
outtext("D");
delay(1);
Sound();
outtext(" ");
delay(1);
Sound();
outtext("E");
delay(1);
Sound();
outtext("L");
delay(1);
Sound();
outtext("S");
delay(1);
Sound();
outtext("A");
delay(1);
Sound();
outtext("Y");
delay(1);
Sound();
outtext("E");
delay(1);
Sound();
outtext("D");
delay(1);
Sound();
outtext(" ");
delay(1);
Sound();
outtext("A");
delay(1);
Sound();
outtext("L");
delay(1);
Sound();
outtext("L");
delay(1);
Sound();
outtext("A");
delay(1);
Sound();
outtext("M");
delay(1);
}
/****************************************************************************/
void GRAPHICES::credit(void)
{
int driver=0,mode,m=-53;
initgraph(&driver,&mode,"C:\\BC5\\BGI");
PIXEL();
write1();
cleardevice();
PIXEL();
//asd.write2();
creadit();
back();}
//------------------------------------------------------------------------------
void GRAPHICES::ex()
{
setbkcolor(7);
//setcolor(8);
exit(0);
}
//------------------------------------------------------------------------------
void GRAPHICES::closing(void)
{
closegraph();
exit(1);
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void main(void)
{
GRAPHICES GUI;
GUI.Openning();
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------وايضا الكود مرفق للسهولة فى فتحة
بقوللك ايه لو سمحت
ممكن تدلنى على وصلة كتاب يشرح كل شىء فى السى بلس بلس
حتى الجرافيك سوء عربى او انجليزى
حاحاول اصرف فى الترجمة بس المهم ان يكون يشمل الجرافيك بكل نواحيه
ولدى سوال اخر :
1- كيف اقوم بصناعة مكتبة خاصة بى على برنامج بورلاند سى بلس بلس ؟
2- هل السى بلس بلس قادرة عى انشاء جرافيك ثلاثى الابعاد ؟
واكون شاكرأ جدأ للك
لا تندهش عندما اضع هذا الطلب على المنتدى العام
حتى اذا كان احد يريد ان يعرف كيف يصمم مكتبة خاصة يعثر على الجواب
فهى خدمة الى الجميع
مشكور جدأ عزيزى العضو eng_3llam
لانك استحملتنى كتير
منتظر ردك على رسالتى
_____________________________
C Language && Windwos_API
_____________________________
بسم الله الرحمن الرحيم
السلام عليكم
أولا يوجد بعض الدوال التى قد أستخدمتها ويعنى ممكن أقولك 3d بس مش أوى
وهى
Elipse(); Drawpoly(); Bar3d(); Bar(); Pieslice(); ملحوظة لكل دالة pramaters
حاول تبحث عنهم فى الmsdn وستجدهم بأذن الله
أنصحك بأستخدام Borland 5.0v ف حالة البحث
لية؟؟؟؟
علشان لما تبحث عن graphics.h يعطيلك كل الدوال الموجودة فية بشرح جميل لكل دالة ومثال أيضا
بالنسبة للكتب صدقنى مافيش كتاب هيقولك على كل حاجة ويخليك محترف كل ما هو يعملة يفتح ليك الموضوع ويسيبك مع نفسك :D
وايضا دة يعتمد على انت وذكائك وكيفية تهيئة للمستخدم بان الذى امامة 3d
زى ف المثال الذى قد ارفقتة عبارة عن شوية زراير شكلها 3d بس هى مش 3d دا شكل مستطيل مكون من مجموعة من الlines بس عملت الخط اللى تحت واللى على ايدك اليمين بالاسود والباقى بالابيض
وبالتالى يضهلا اكنة 3d
طب ف حالة الضغط علية
هغير الالوان بدل ماكان أسود هخلية أبيض والعكس ايضا
وبالتالى كدة وضح للمستخدم انة عند الضغط علية ستشغر انة الbouttn يتحرك للداخل بس فى الحقيقة مابيحصلش كدة :D
بالنسبة للكتب عندك كتاب ( انا معرفش وصلتة ع النت بس ممكن تشترية)
Object orentiend programming c++ by robort lafore
دة فى بعض الشرح للgraphices بس مستخدم header file أسمة mosftcon.h
وانا شخصيا عمرى ما أستخدمتة ( بس كل الدوال اللى فية سهلة وشبية للدوال الموجودة ف graphics.h )
بالنسبة لكيفية صناعة ال.dll بالبورلاند
عندك طريقة قد شرحها الاخ jass
بس بالفيجوال سى معتقدش انها تختلف عن السى فى اى حاجة ع البورلاند (ممكن من الmsdn أيضا هتلاقى مجموعة اكواد عندك ف ملف مسارة (C:\BC5\EXAMPLES )
هتلاقى كود ازاى تعمل dll وتستخدمها
ودى لينكة أكواد graphics بالسى جميلة أكيد تستفيد منها
http://www.Planet-Source-Code.com/
بس نصيحة أخيرة كل دة هيضيع وقتك وانت فى غنى عن طغيع الوقت بدل ماأتعلم الgraph بالسى أتعملة بالvb or vb.net or c# على الاقل بيمكنى من حاجات صعب وجودها ف السى
وأتمنى ان أكون أوضحت لك ما تريدة
مشكور جدأ على توضيحك للجرافيك
بس ينقصنى الان كيفية عمل المكتبة بصراحة ياعزيزى زهت من كل مأجى اكتب كود اكتب مكتبته الخاصة به
فقولت ليه معملش مكتبة تلم كل الاكواد مع بعضها
لا عليك اشكرك على الجرافيك انت فتحت امامى نصف الطريق gui
وانا على الاجتهاد فيه
شكرأ يأ صاحبى eng_3llam
B)
_____________________________
C Language && Windwos_API
_____________________________
اقتباسبس ينقصنى الان كيفية عمل المكتبة بصراحة ياعزيزى زهت من كل مأجى اكتب كود اكتب مكتبته الخاصة بهفقولت ليه معملش مكتبة تلم كل الاكواد مع بعضها
والله انا لسة ماجربتش اعمل dll بس أدى لينكة تدلك على عملها
العملية سهلة وبسيطة ومش مستهلى تعقيد
اقتباسلا عليك اشكرك على الجرافيك انت فتحت امامى نصف الطريق guiوانا على الاجتهاد فيه
نصيحة من شخص جلس امام الجهاز باليالى لعمل جراف بالسى
صدقنى والله العظيم مضيق للوقت (لو انت واخد العملية هواية ممكن تتعلمة وتعرف الsyntax بس مش لازم تتعمق فية )
وشكرا لك
يعطيك العافية eng_3llam
بتعرف إنك إنت فاضي برمجة
أنا ما بقول هذا الحكي إلا للناس يلي بتدخل مزاجي
برافو عليك
يعم فين شرح الكود ؟؟؟؟
هذا الموضوع مغلق.