افزونه 1 کدهای تغییر رنگ (زمینه ، فونت ، زمینه فونت) ، تغییر اندازه فونت و توقف چند ثانیه ای

MPERSIA4

Member
درودی دوباره
کدهایی که تو C++_Visual Studio 2010 کار کنن
1-کدهای تغییر رنگ (زمینه ، فونت و زمینه فونت)
2-تغییر اندازه فونت
3-و توقف چند ثانیه ای اونم به اندازه ای که خودمون بگیم مثلا یه کد Sleep بود که این کار رو میکرد بش یه عدد مثلا 10000 میذاشتی 10 ثانیه توقف میکرد ولی نمیدونم تو ویژوال 2010 چی هست
خواهشمندم به من بیاموزید!!!!!!!!!!!!!!!!!!!!!!
:soot:
 
آخرین ویرایش:

the_king

مدیرکل انجمن
درودی دوباره
کدهایی که تو Visual Studio 2010 کار کنن
خواهشمندم به من بیاموزید!!!!!!!!!!!!!!!!!!!!!!
:soot:

این انجمن مربوط به چند زبان برنامه نویسی است، زبان برنامه نویسی رو در سوالات تون مشخص کنید.

1-کدهای تغییر رنگ (زمینه ، فونت و زمینه فونت)

مستقیما ربطی به Visual Studio نداره، استاندارد برنامه نویسی کنسول تحت ویندوز ++C همینه :
کد:
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <Windows.h>
#include <conio.h>

کد:
#include "stdafx.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(h, 0x0c);
	cout << "Red" << endl;
	SetConsoleTextAttribute(h, 0x0e);
	cout << "Yellow" << endl;
	SetConsoleTextAttribute(h, 0x1f);
	cout << "White Over Blue" << endl;
	SetConsoleTextAttribute(h, 0x2e);
	cout << "Yellow Over Green" << endl;
	getch();
	return 0;
}
رجوع شود به :
تغییر رنگ و فونت پیغامها در++c

2-تغییر اندازه فونت
روی پنجره Console در حال اجرا راست کلیک کرده و گزینه Properties رو انتخاب کنید.

3-و توقف چند ثانیه ای اونم به اندازه ای که خودمون بگیم مثلا یه کد Sleep بود که این کار رو میکرد بش یه عدد مثلا 10000 میذاشتی 10 ثانیه توقف میکرد ولی نمیدونم تو ویژوال 2010 چی هست

کد:
#include <Windows.h>

کد:
	cout << "Sleep for 2 seconds..." << endl;
	Sleep(2000);
	cout << "Continue..." << endl;
 

MPERSIA4

Member
این انجمن مربوط به چند زبان برنامه نویسی است، زبان برنامه نویسی رو در سوالات تون مشخص کنید.



مستقیما ربطی به Visual Studio نداره، استاندارد برنامه نویسی کنسول تحت ویندوز ++C همینه :
کد:
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <Windows.h>
#include <conio.h>

کد:
#include "stdafx.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(h, 0x0c);
    cout << "Red" << endl;
    SetConsoleTextAttribute(h, 0x0e);
    cout << "Yellow" << endl;
    SetConsoleTextAttribute(h, 0x1f);
    cout << "White Over Blue" << endl;
    SetConsoleTextAttribute(h, 0x2e);
    cout << "Yellow Over Green" << endl;
    getch();
    return 0;
}
رجوع شود به :
تغییر رنگ و فونت پیغامها در++c


روی پنجره Console در حال اجرا راست کلیک کرده و گزینه Properties رو انتخاب کنید.



کد:
#include <Windows.h>

کد:
    cout << "Sleep for 2 seconds..." << endl;
    Sleep(2000);
    cout << "Continue..." << endl;

میشه واسم توضیح بدین که اون کدهای رنگ دقیقا چه کاری انجام میدن یا از کجا میشه کد رنگ های بیشتری پیدا کرد؟!
بیشتر میخوام بدونم این تیکه چکاری میکنه : ( h, 0x0c)
و این یکی :

;(HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE

در ضمن تغییر رنگ زمینه رو از Properties میدونستم ولی میخوام با کد این کار رو انجام بدم!!
مثلا اگه بخوام نصف صفحه بنفش بشه باید چه کدی بزنم؟!
 
آخرین ویرایش:

the_king

مدیرکل انجمن
میشه واسم توضیح بدین که اون کدهای رنگ دقیقا چه کاری انجام میدن یا از کجا میشه کد رنگ های بیشتری پیدا کرد؟!
بیشتر میخوام بدونم این تیکه چکاری میکنه : ( h, 0x0c)
و این یکی :

HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);

در ویندوز اساسا هر شیئ ای که جزئی از ویندوز ئه یک شماره منحصر بفرد (handle) داره، پنجره کنسول ای که برنامه شما باز می کنه هم همینطور، یک شماره handle داره.
اگر بخواهید چیزی رو در تنظیمات این کنسول بخوانید یا تغییر بدهید باید شماره اش رو بدست بیاورید، چون همه روتین های که با کنسول کار می کنند بر اساس این شماره handle
طراحی شده اند. اون کدی که نوشته شده شماره Handle کنسول خروجی رو می خونه که یک عدد ئه و در متغیر h قرار میده. این شماره کنسول پنجره برنامه شما است.
از این سطر به بعد هر جای کد که خواستید با روتین های کنسول کار کنید، از مقدار h استفاده خواهید کرد.

رنگ های پنجره کنسول بصورت ترکیبی 8 بیتی ئه، یعنی یک بایت، 4 بیت برای رنگ نوشتار و 4 بیت برای رنگ زمینه. معمولا بصورت اعداد هگزادسیمال (مبنای 16) مشخص اش می کنند
چون در مبنای 16 هر 4 بیت یک رقم ئه و ساده میشه رنگ زمینه و نوشتار رو از هم تفکیک کرد. 0x پیشوند اعداد مبنای 16 است و اگه دو رقم بعدش بنویسید رقم سمت چپی رنگ زمینه
است و رقم سمت راستی رنگ نوشتار. مثلا 0x0c یعنی رنگ نوشتار c و رنگ زمینه 0 یا مثلا 0x42 یعنی رنگ نوشتار 2 و رنگ زمینه 4 یا مثلا 0x1f یعنی رنگ نوشتار f و رنگ زمینه 1
کد:
0	Black
1	Blue
2	Green
3	Cyan
4	Red
5	Magenta
6	Brown
7	Light Gray
8	Dark Gray
9	Light Blue
a	Light Green
b	Light Cyan
c	Light Red
d	Light Magenta
e	Yellow
f	White
 

MPERSIA4

Member
کد:
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <Windows.h>
#include <conio.h>

کد:
#include "stdafx.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(h, 0x0c);
    cout << "Red" << endl;
    SetConsoleTextAttribute(h, 0x0e);
    cout << "Yellow" << endl;
    SetConsoleTextAttribute(h, 0x1f);
    cout << "White Over Blue" << endl;
    SetConsoleTextAttribute(h, 0x2e);
    cout << "Yellow Over Green" << endl;
    getch();
    return 0;
}

یه سوال دیگه :
<tchar.h> و *Tchar_ اینجا چکاری انجام میدن و چرا تابع main به اینصورت ( tmain_ ) نوشته شده؟
 

the_king

مدیرکل انجمن
یه سوال دیگه :
<tchar.h> و *Tchar_ اینجا چکاری انجام میدن و چرا تابع main به اینصورت ( tmain_ ) نوشته شده؟

در زبان ++C ذاتا یک char هست که تک بایتی است و مناسب رشته های Unicode و چند زبانه نیست. ویندوز های مدرن همگی
از رشته ها و توابع Unicode استفاده می کنند و رشته های char در توابع Unicode درست تفسیر نمی شوند.
برای بکار گیری کاراکتر های Unicode که بصورت متعارف دو بایتی اند، (wchar (WCHAR تعریف و بکار برده میشه. اما مساله اینجا است که
Unicode بودن یا نبودن رشته ها به نسخه ویندوز بستگی داره و سوئیچ کردن بین char و wchar در کد برنامه دشواره.
برای همین یک جایگزین هوشمند tchar تعریف شده. tchar بر اساس مشخصات ویندوز یا تک بایتی است یا دو بایتی.
وقتی از tchar استفاده میشه دیگه برنامه نویس درگیر Unicode بودن و نبودن کاراکتر ها نیست.

رجوع شود به :
درخواست توضیح و مشکل در unicode

در مورد tmain_ هم همینطور، طبیعتا main می تونه هم از argv ئه char استفاده کنه و هم wchar و هم tchar
برای همین علاوه بر main ، دو تابع wmain و tmain هم تعریف شده. اون _ قبل از اسم شون مربوط به مواردی است
که مایکروسافت به کامپایلر اضافه کرده، نشونه اینه که جزو استاندارد زبان نیست.
 

جدیدترین ارسال ها

بالا