PDA

View Full Version : سوال: تبدیل منوی معمولی به گرافیکی (فونت و رنگ)



giootin_tiz
جمعه 24 اردیبهشت 1389, 23:37 عصر
من خودم آموزش میدم ولی تا به حال به چنین سوالی بر نخورده بودم که چطور یه برنامه رو از حالت معمولی به گرافیکی تبدیل کنیم



int main(void)
{
char choice ,ans;
first_evalution();
for(;;){
choice = menu_select() ;
switch(choice) {
case 1: enter();in_style(items); break;
case 2: search_main(); break ;
case 3: top_student(); break;
case 4: fail_student(); break ;
case 5: delete_main(); break ;
case 6: save();break;
case 7: load();break;
case 8: display();break;
case 9:{
printf("baraye khorooj motmaenid ?(y/n)");
ans=getche();
clrscr();
if(ans=='y')
exit(0);break; }
}
}
}
void first_evalution(void)
{
register int i ;
for(i = 0; i < MAX; ++i)
st[i].name[0] = '\0' ;
}
int menu_select(void)
{
char s[10];
int g ;
printf("\n\n\t (1) << vorood etelaaat >>");
printf("\n\n\t (2) << jostojoo >>");
printf("\n\n\t (3) << behtarin daneshjooha >>");
printf("\n\n\t (4) << daneshjoohaye mashrooti >>");
printf("\n\n\t (5) << delete >>");
printf("\n\n\t (6) << zakhire etelaat >>");
printf("\n\n\t (7) << bargiri etelaat >>");
printf("\n\n\t (8) << namayeshe etelaat >>");
printf("\n\n\t (9) << khrooj >>");
do {
printf("\n\n\t az 1 ta 9 entekhab konid: ") ;
gets(s);
clrscr();
g = atoi(s);
} while(g < 0 || g > 9) ;
return (g) ;
}

saber187518
شنبه 25 اردیبهشت 1389, 00:39 صبح
سلام دوست عزیز
1)آیا تا حالا منو گرافیکی نوشتی؟
2)منو باید مثل ویندوز باز و بسته بشه یا اینکه ثابت می مونه؟
3)کار کردن با وقفه ماوس توی محسط گرافیکی رو بلدی؟

giootin_tiz
شنبه 25 اردیبهشت 1389, 00:48 صبح
سلام دوست عزیز
1)آیا تا حالا منو گرافیکی نوشتی؟
2)منو باید مثل ویندوز باز و بسته بشه یا اینکه ثابت می مونه؟
3)کار کردن با وقفه ماوس توی محسط گرافیکی رو بلدی؟

نه تا حالا ننوشتم واسه همین پرسیدم اصلا کار نکردم و هیچی راجع بهش نمیدونم کدی رو که گذاشتم حتی رنگی 3 رنگه هم کنم کافیه حالا اگه شد با موس که چه بهتر ...

saber187518
شنبه 25 اردیبهشت 1389, 12:12 عصر
با سلام دوست عزیز
برای نوشتن منو شما چندین راه دارید.
1)در بالای صفحه قرار بگیره و فقط یک نوار ثابت باشه و مثل دکمه عمل کنه
2)مثل صفحات وب در سمت چپ یا راست صفحه به صورت یک مستطیل عمودی و ثابت مثل دکمه باشه
3)در هر دو صورت قبلی منو کشویی عمل کنه و باز و بسته بشه.
---------------------------------------
1-اگر از این راه بخوای بری فقط کافیه که یه مستطیل در بالای صفحه مانیتور تعریف کنی و داخل اون رو به چند قسمت مساوی تقسیم کنی و هر قسمت رو حالا با سلیقه خودت رنگی کنی و یا سیاه و سفید و یا ... بسازی.
2-این جا هم دقیقا مثل قسمت 1 عمل میکنی با این تفاوت که مستطیل عمودی هست.
3-:لبخند:اول یکی از اون حالات قبلی رو بنویس بعد خودت میفهمی چطور باید این رو بنویسی. اگه نشد بگو با مثال کمکت می کنم.

giootin_tiz
شنبه 25 اردیبهشت 1389, 14:09 عصر
ببنید من اصلا با گرافیک کار نکردم چون رشتم اون قدر برنامه نویسی نیاز ندشت واسه همین من دنبال یاد گرفتن گرافیک نرفتم حالا نیاز دارم کدم رو گرافیکی کنم......

saber187518
یک شنبه 26 اردیبهشت 1389, 00:03 صبح
سلام
ببخشید من منظورتو نگرفته بودم.
من یک نمونه کد برات میذارم که با توجه به اون بتونی کار کنی.
اما الان 12:30 نیمه شب شده و خسته هستم.
ولی فردا این کار رو برات انجام میدم.

یا علی...

giootin_tiz
دوشنبه 27 اردیبهشت 1389, 10:14 صبح
سلام
ببخشید من منظورتو نگرفته بودم.
من یک نمونه کد برات میذارم که با توجه به اون بتونی کار کنی.
اما الان 12:30 نیمه شب شده و خسته هستم.
ولی فردا این کار رو برات انجام میدم.

یا علی...
??????? من منتظر شما هستم صابر عزیز لطف میکنی کمکم کنی؟

saber187518
دوشنبه 27 اردیبهشت 1389, 13:34 عصر
با سلام ببخشید که دیر شد.
برای استفاده از ماوس داخل محیط داس باید این هدر فایل ها رو به برنامه اضافه کنی


#include<process.h>
#include<dos.h>

بعد باید ماوس رو initial کنی که با استفاده از این تابع باید انجام بدی


void init_mouse()
{
union REGS iregs, oregs;

iregs.x.ax = 0;
int86 (0x33, &iregs, &oregs);

if (oregs.x.ax == 0)
{
cleardevice();
printf("mouse not installed\n");
getch();
exit(1);
}
iregs.x.ax = 1;
int86 (0x33, &iregs ,&oregs);
}

برای بدست اوردن اینکه طرف در کدام نقطه صفحه کلیک کرده باید از این تابع استفاده کنی.


void mouse()
{
int button,x1,y1;
union REGS iregs, oregs;

iregs.x.ax = 3;
int86 (0x33, &iregs ,&oregs);

button = oregs.x.bx & 3;
x1 = oregs.x.cx;
y1 = oregs.x.dx;

if(oregs.x.bx & 1)
{
X = x1 ; Y = y1;
}

if(button == 3)
exit(0);
}

با این تابع میتونی هر وقت خواستی ماوی رو از دید کاربر پنهان کنی


void hide_mouse()
{
union REGS ioRegs;
ioRegs.x.ax=2;
int86(0x33,&ioRegs,&ioRegs);
}

با این تابع میتونی ماوس رو که پنهان کردی دوباره نمایش بدی


void show_mouse()
{
union REGS ioRegs;
ioRegs.x.ax=1;
int86(0x33,&ioRegs,&ioRegs);
}

و با این تابع میتونی به طور کامل ماوس رو از برنامه حذف کنی.


void remove_mouse()
{
union REGS ioRegs;
ioRegs.x.ax=0;
int86(0x33,&ioRegs,&ioRegs);
}

بازم ببخشید که دیر شد. متاسفانه کاری برام پیش اومد.
اگه بازم سوالی مشکلی بود بپرس در خدمتم.
موفق باشی.