PDA

View Full Version : سوال: طراحي منو هاي گرافيكي



Max Payne
دوشنبه 02 شهریور 1388, 20:00 عصر
با سلام خدمت دوستان
من مي خواستم بدونم چطور ميشه با زبان سي يا سي++ منوي گرافيكي ايجاد كنيم و اونو واسه اون مدل مايكرو كامپايل كنيم كه كامپايلرها متفاوت هستن و نوع مايكرو واسم مهم نيست چه نوع مايكرويي باشه اما نمونه سورس مي خوام، اما اين منوهاي پيشرفته فكر نمي كنم از گرافيك خود زبان سي يا سي++ به وجود آمده باشن فكر كنم تلفيقي از گرافيك و زبان سي باشن مثلا منوهاي تي وي يا مانيتور يا ساير رسانه ها كه عكسم داخلشون به كار رفته
ممنون ميشم اگه نمونه اي داريد در اختيارم بذاريد

Max Payne
یک شنبه 08 شهریور 1388, 01:52 صبح
دوستان يه مثال نمونه هم نداريد كه راهنمايي كنه!
فكر كنم هر باكسي يه سطح رنگي هم به صورت استاندارد داره

SamaPic
پنج شنبه 12 شهریور 1388, 10:01 صبح
ببین این خوبه ؟

void Hellp(int q)
{
clr();
gotoxy(3,3);
cout<<" if you like go to Up press W."<<endl;
cout<<" if you like go to Down press S."<<endl;
if (q)
{
cout<<" if you like go to Left press A."<<endl;
cout<<" if you like go to Right press D."<<endl;
cout<<" if you like Select Free press F."<<endl;
cout<<" if you like Select Min press M."<<endl;
cout<<endl<<endl<<endl<<endl<<" When you are win ?";
cout<<endl<<" When you are guess all of free home";
cout<<endl<<" And";
cout<<endl<<" When you are guess all Min's home";
}
gotoxy(24,24);
cout<<" Please Enter Any Key To Exit.";
kadr();
getch();
clr();
}
void ShowLevel()
{
int i=4,j=2;
textbackground(1);
setbkcolor(1);
gotoxy(i,j);
cout<<"Please select :"<<endl;
gotoxy(i+=11,++j);
cout<<" If you like play EASY"<<endl;
gotoxy(i,++j);
cout<<" If you like play NORMAL"<<endl;
gotoxy(i,++j);
cout<<" If you like play HARD"<<endl;
gotoxy(i,++j);
cout<<" If you like set count min's"<<endl;
gotoxy(i,++j);
cout<<" Hellp (In game you can press H to give hellp)"<<endl;
gotoxy(i,++j);
cout<<" Exit"<<endl;
gotoxy(i,++j);
gotoxy(++++++++++i,j+=5);
cout<<" Press F to select.";
kadr();
}
int Select()
{
kadr();
setbkcolor(1);
int key,i=16,j=3;
char Kr=175;
gotoxy(i,j);
while (1)
{
gotoxy(i,j);
cout<<Kr;
key=getch();
if (key==83||key==115)//Down
{
if (8>j)
{
gotoxy(24,24);
cout<<" ";
ShowLevel();
j++;
gotoxy(i,j);
cout<<Kr;
}
continue;
}
if (key==87||key==119)//Up
{
if (3<j)
{
gotoxy(24,24);
cout<<" ";
ShowLevel();
j--;
gotoxy(i,j);
cout<<Kr;
}
continue;
}
if (key==70||key==102)//Select(F)
return j;
if (i)
{
gotoxy(24,24);
cout<<" ";
ShowLevel();
gotoxy(24,24);
cout<<" Please Enter Correct Key ";
gotoxy(i,j);
cout<<Kr;
continue;
}
}
}
int custom(int &countmin)
{
kadr();
gotoxy(3,3);
cout<<"Please enter number of min and press enter (range of number (5-90)) : ";
while(1)
{
cin>>countmin;
if (countmin>90||countmin<5)
{ gotoxy(3,3);
cout<<" ";
gotoxy(3,3);
cout<<"The number out of the range (5-90).Please enter again : ";
continue;
}
else
break;
}
return 1;
}
int Selectlevel(int &countmin)
{
int x,R,q=0;
while('R')
{
ShowLevel();
x=Select();
switch (x)
{
case 3:countmin=15;clr();break;
case 4:countmin=30;clr();break;
case 5:countmin=60;clr();break;
case 6:clr();custom(countmin);break;
case 7:clr();Hellp(q);continue;
case 8:gotoxy(24,24);cout<<" ";gotoxy(24,24);cout<<" Plesae any key to exit ";getch();clr();exit(1);
}
break;
}
clr();
return R;
}

farzadsw
پنج شنبه 12 شهریور 1388, 22:08 عصر
این برنامه ای که دوستمون گذاشتن کلیت این جور برنامه هاست . برا یاستفاده تو میکرو باید بسته به نوع lcd که استفاده میکنید و نوع تابع هایی که خودتون برای lcd نوشتید و یا تابع آماده کامپایلر ؛ تغییرش بدید.

Max Payne
سه شنبه 17 شهریور 1388, 01:51 صبح
ممنون اين نمونه مثالي رو كه گذاشتين خودم شبيه اين دارم اما من بحثم اينه شما يه تصوير رو ديدن كه گرافيك زيبايي داره و داراي رنگ هاي فراواني هستش چطور ميشه اون تصوير رو با زبان سي يا سي++ مخلوط كردش، فكر كنم اون عكس بايد به صورت ديتاي اين چنيني در بيادش يا يه جورايي خودمون اينطوري تنظيمش كنيم
مثلا اين نمونه يه نمونه از نوع رنگ كنترل ولوم هستش كه اين كدها هر كدوم نمايش يه نوع رنگ هستش اما ما همچين چيزايي در توابع كتابخانه زبان سي و سي++ نداريم پس مجبوريم به صورت دستي خودمان تلفيق كنيم اما الان چطور اين كدها رو ميشه به وجود آورد و يه تصوير رو تجزيه كردش تا با زبان سي و سي ++ تلفيق كنيم اونوقت بتونيم به راحتي ازش استفاده كنيم

/*
* volume screen coordinate constants
*/
#define VOL_ICON_DIMX 32
#define VOL_ICON_DIMY 32
static const unsigned int VolumeIcon [] = {
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xff00ffff, 0xffffffff,
0xffffffff, 0xffffffff, 0x0000ffff, 0xffffffff,
0xffffffff, 0xffffff00, 0x0000ffff, 0x00ffffff,
0xffffffff, 0xffff0000, 0x0000ffff, 0xff00ffff,
0xffffffff, 0xff000000, 0x0000ffff, 0xff00ffff,
0xffffffff, 0x00000000, 0x0000ff00, 0xff00ffff,
0xffffff00, 0x00000000, 0x0000ff00, 0xffff00ff,
0x00000000, 0x00000000, 0x0000ffff, 0x00ff00ff,
0x00000000, 0x00000000, 0x0000ffff, 0x00ff00ff,
0x00000000, 0x00000000, 0x0000ffff, 0x00ffff00,
0x00000000, 0x00000000, 0x0000ffff, 0xff00ff00,
0x00000000, 0x00000000, 0x0000ffff, 0xff00ff00,
0x00000000, 0x00000000, 0x0000ffff, 0xff00ff00,
0x00000000, 0x00000000, 0x0000ffff, 0xff00ff00,
0x00000000, 0x00000000, 0x0000ffff, 0xff00ff00,
0x00000000, 0x00000000, 0x0000ffff, 0xff00ff00,
0x00000000, 0x00000000, 0x0000ffff, 0x00ffff00,
0x00000000, 0x00000000, 0x0000ffff, 0x00ff00ff,
0x00000000, 0x00000000, 0x0000ffff, 0x00ff00ff,
0xffffff00, 0x00000000, 0x0000ff00, 0xffff00ff,
0xffffffff, 0x00000000, 0x0000ff00, 0xff00ffff,
0xffffffff, 0xff000000, 0x0000ffff, 0xff00ffff,
0xffffffff, 0xffff0000, 0x0000ffff, 0xff00ffff,
0xffffffff, 0xffffff00, 0x0000ffff, 0x00ffffff,
0xffffffff, 0xffffffff, 0x0000ffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xff00ffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
};
static unsigned char pel_mask[4096];

farzadsw
سه شنبه 17 شهریور 1388, 17:57 عصر
شما اول باید بتونید با یه lcd گرافیکی رنگی کار کنید(نوعش باید مشخص باشه چون برنامه های یکی به یکی دیگه نمیخوره) . بعد از این که تونستید مثلا یه پیکسل رو با یه رنگ دلخواه روشن کنید بعد میرید سراغ نوشتن تابع دلخواه که مثلا فلان شکل یا عکس آماده رو در یه محلی ترسیم کنه.
حالا ممکنه برای بعضی از lcd ها کتابخونه به صورت آماده وجود داشته باشه ولی راه کلی اینه.
اون کد هایی رو هم که گذاشتید برمیگرده به نحوه ارسال اطلاعات به lcd که برای هر نوع lcd یه طوره و تو دیتاشیت اون مشخص شده.
حالا باز اگه اون نوع lcd یه برنامه براش نوشته شده باشه(یا خودتون نوشته باشید) که یه عکس بگیره و خروجی تبدیلش یه کد هگز باشه کار راحت تر میشه.