PDA

Դիտել ողջ տարբերակը : MFC-ի Dialog design-ում գրված հայերենը ծրագրի աշխատելուց չի արտապատկերվում



CCoder
10.11.2008, 02:48
Աշխատում եմ MS Visual Studio 2008Pro-ով և ունեմ հետևյալ պրոբլեմը (պրոբլեմը կա դեռ Visual Studio 7.0-ի ժամանակներից):
Սարքում եմ MFC project (Dialog based, Use Unicode Libraries->Checked), Dialog-ի դիզայնում գրում եմ հայերեն (Unicode) ամեն ինչ նորմալ ցույց է տալիս:
32801

Բայց ծրագիրը աշխատացնելուց ցույց է տալիս սա
32805

Կոդում ավելացնում եմ


// TODO: Add extra initialization here
this->SetWindowTextW(L"Պատուհան");

GetDlgItem(IDC_STATIC)->SetWindowTextW(L"Հայերեն");
և ծրագիրը աշխատելուց ամեն ինչ նորմալ ցույց է տալիս, ոնց որ դիզայնում:

Ինչ որ մեկը գիտի թե ոնց անել, որ ամեն ինչ նորմալանա, թե չէ դրա համար կոդ գրելը ...
MFC-ում առանց այդ էլ դիզայնը քրտնաջան աշխատանք է:

Աթեիստ
10.11.2008, 11:12
Կարծում եմ Regional Settings-ում անհրաժեշտ է ավելացնել Հայերեն տեքստի հնարավորությունը (երկրորդ թերթիկի վրա, առաջին "ծիտիկը"):

CCoder
10.11.2008, 11:58
Կարծում եմ Regional Settings-ում անհրաժեշտ է ավելացնել Հայերեն տեքստի հնարավորությունը (երկրորդ թերթիկի վրա, առաջին "ծիտիկը"):

Իմ մոտ միշտ միացրածա:
Համ էլ


Կոդում ավելացնում եմ


// TODO: Add extra initialization here
this->SetWindowTextW(L"Պատուհան");

GetDlgItem(IDC_STATIC)->SetWindowTextW(L"Հայերեն");
և ծրագիրը աշխատելուց ամեն ինչ նորմալ ցույց է տալիս, ոնց որ դիզայնում:
Ինձ պետքա որ էդ կոդը չգրեմ, պատկերացրա ունես պատուհան լիքը Control-ներով ու համապատասխան Label-ներով: Ամեն մեկի համար մի հատ ID հորինի ու կոդ գրի:
ինձ թվումա Visual Studio-ի կամ Project-ի պարամետրերի մեջ մի բան պիտի փոխվի:
Օրինակ C#-ում ոնց գրում ես այնպես էլ ցույցա տալիս ավելորդ ոչ մի բան պետք չի:

nenesys
17.02.2009, 09:56
ես 2008 ի տակ շատ եմ գրել հայերեն, ու ոչ մի անգամ պրոբլեմ չեմ ունեցել, առանց ինչ որ կոդ գրելու. էսօր մի հատ կնայեմ , բայց վայթէ յունիկոդով չպտի գրես

lav tgha
08.03.2009, 14:56
դուք unicode-ի խնդիր ունէք, ես պարսկերէն լեզւի ծրագիրների հետ էլ նոյն խնդիրը ունեիմ, այս հարցը լուծելու համար պէտք է control panel-ի մէջից, Regional and language options բաժինը բացելուց յետոյ, երրորդ tab-ի մէջ Advanced անւան տակ ընտրէք ձեր համակարգիչի կոդաւորման տեսքը, ընտրելով հայերէնը ձեր այս խնդիրը կը լուծւի.

http://lav-tgha.izfree.com

_DEATH_
06.05.2009, 13:33
նույն խնդիրը ունեմ win api-ի հետ, առանձ Regional and Language Options-ին կպնելու հնարավոր չի Unicode-ով հայերեն տպել?
ախր լիքը ծրագրեր կան հայերեն էլ են տպում, չինարեն էլ:

min-mak
05.06.2010, 23:38
Աշխատում եմ MS Visual Studio 2008Pro-ով և ունեմ հետևյալ պրոբլեմը (պրոբլեմը կա դեռ Visual Studio 7.0-ի ժամանակներից):
Սարքում եմ MFC project (Dialog based, Use Unicode Libraries->Checked), Dialog-ի դիզայնում գրում եմ հայերեն (Unicode) ամեն ինչ նորմալ ցույց է տալիս:
32801

Բայց ծրագիրը աշխատացնելուց ցույց է տալիս սա
32805

Կոդում ավելացնում եմ


// TODO: Add extra initialization here
this->SetWindowTextW(L"Պատուհան");

GetDlgItem(IDC_STATIC)->SetWindowTextW(L"Հայերեն");
և ծրագիրը աշխատելուց ամեն ինչ նորմալ ցույց է տալիս, ոնց որ դիզայնում:

Ինչ որ մեկը գիտի թե ոնց անել, որ ամեն ինչ նորմալանա, թե չէ դրա համար կոդ գրելը ...
MFC-ում առանց այդ էլ դիզայնը քրտնաջան աշխատանք է:

Ժող ջան էս նույն խնդիրը այժմ ես ունեմ, CCoder-ի կողմից բացված այս թեման արդեն 1.5 տարի է ինչ կա ու մինչև հիմա կոնկրետ լուծում չի ստացել, հնարավոր է ձեզանից ոմանք ունեցել են այս խնդիրը և գտել են լուծման ձևը, միանգամից ասեմ որ Regional and Language Options-ում խնդիր չունեմ, այսինքն երկրորդ թաբի առաջին ծիտիկը դրածա: Նախօրոք շնորհակալ եմ

BOBO
06.06.2010, 01:19
Ժող ջան էս նույն խնդիրը այժմ ես ունեմ, CCoder-ի կողմից բացված այս թեման արդեն 1.5 տարի է ինչ կա ու մինչև հիմա կոնկրետ լուծում չի ստացել, հնարավոր է ձեզանից ոմանք ունեցել են այս խնդիրը և գտել են լուծման ձևը, միանգամից ասեմ որ Regional and Language Options-ում խնդիր չունեմ, այսինքն երկրորդ թաբի առաջին ծիտիկը դրածա: Նախօրոք շնորհակալ եմ

ռեգիոնալում ինչ կա Հայաստան դիր, համենայնդեպս ռուսերեն ծրագրերի դեպքում օգնումա

LoK®
06.06.2010, 01:38
Պատճառը էն ա, որ Visual Studio 2008-ը (ու երևի նախորդներն էլ) ռեսուրսների ֆայլը (.rc) պահում ա ԱՆՍԻ-ով, ու դիալոգի վրա գրված հայերեն տեքստը .rc ֆայլում որպես հարցականներ ա գրվում:
Սխալը ուղղելու համար պետք ա մինչև դիալոգի վրա հայերեն գրելը .rc ֆայլը յունիկոդ դարձնել: Դրա համար`
1. Solution Explorer-ում աջ քլիք արեք .rc ֆայլի վրա ու ընտրեք "View Code"
2. File մենյուից ընտրեք "Save xxx.rc As..."
3. Սխմեք "Save"-ի կողքի սլաքը և ընտրեք "Save With Encoding..." (կհարցնի ուզում եք replace անեք, ասեք հա)
4. Բացված պատուհանի վրա "Encoding"-ը ընտրեք "Unicode - Codepage 1200" ու OK
5. Փակեք .rc ֆայլը, բացեք դիալոգը ու սկսեք հայերեն գրել :)

Ահա արդյունքը`

http://i077.radikal.ru/1006/c8/b6bd9c87d1bc.png

Հ.Գ. Visual Studio 2010-ը արդեն էս խնդրիը չունի :)

min-mak
06.06.2010, 23:00
Պատճառը էն ա, որ Visual Studio 2008-ը (ու երևի նախորդներն էլ) ռեսուրսների ֆայլը (.rc) պահում ա ԱՆՍԻ-ով, ու դիալոգի վրա գրված հայերեն տեքստը .rc ֆայլում որպես հարցականներ ա գրվում:
Սխալը ուղղելու համար պետք ա մինչև դիալոգի վրա հայերեն գրելը .rc ֆայլը յունիկոդ դարձնել: Դրա համար`
1. Solution Explorer-ում աջ քլիք արեք .rc ֆայլի վրա ու ընտրեք "View Code"
2. File մենյուից ընտրեք "Save xxx.rc As..."
3. Սխմեք "Save"-ի կողքի սլաքը և ընտրեք "Save With Encoding..." (կհարցնի ուզում եք replace անեք, ասեք հա)
4. Բացված պատուհանի վրա "Encoding"-ը ընտրեք "Unicode - Codepage 1200" ու OK
5. Փակեք .rc ֆայլը, բացեք դիալոգը ու սկսեք հայերեն գրել :)

Ահա արդյունքը`

http://i077.radikal.ru/1006/c8/b6bd9c87d1bc.png

Հ.Գ. Visual Studio 2010-ը արդեն էս խնդրիը չունի :)

վայ շատ շատ շատ մերսի LoK® ջան, էլի դու օգնեցիր, քեզանից շատ շնորհակալ եմ

min-mak
11.06.2010, 23:14
LoK® ջան էլի քո օգնությանն եմ դիմում:)
քաշել եմ VS 2010-ը, ոնց որ ասել էիր ռեսուրսները ունիկոդովա պահպանում ու հայերենի հետ խնդիր չկա, բայց սենց մի սիտուացիա է ստեղծվել, հայերենը նորմալ ցույց է տալիս միայն այն կոմպերի վրա որոնց Regional and Language Options-ում երկրորդ թաբի առաջին ծիտիկը դրածա, իսկ որ կոմպերում որ չկա դրած հայերենի փոխարեն վանդակներա ցույց տալիս:

հարցս հետևյալն է.
կարող եմ փոխել պրոյեկտի հիմնական ֆոնտը և դնել ասենք sylfaen, որ առկա է ցանկացած համակարգչի մեջ:
իսկ եթե հնարավոր չե ապա հայերենին վերաբերող որ ֆոնտն է ավելանում Regional and Language Options-ում երկրորդ թաբի առաջին ծիտիկը դնելիս, այսինքն ինձ պետք է այդ ֆոնտը տեղադրեմ ինստալ պակետի մեջ, և ծրագիրը ինստալ անելուց այդ ֆոնտը տեղադրեմ համապատասխան բաժնում, որով էլ փաստացի կլուծվի հայերենի հետ խնդիրը անկախ նրանից թէ այդ համակարգչում Regional and Language Options-ում երկրորդ թաբի առաջին ծիտիկը դրած է թէ ոչ

LoK®
12.06.2010, 03:15
min-mak ջան, երևի ամենաճիշտ տարբերակը էտ ծիտիկը դնելն ա :) Էտ ժամանակ բացի ֆոնտերից, սիստեմայում էլի ինչ-որ բանա փոխվում (ենթադրում եմ ինչ-որ codepage-եր ու FontSubstitution-ներ ա փոխում/ավելացնում): Ես փորձեցի էտ ծիտիկի հետ ավելացող ֆոնտերը դնել "առանց ծիտիկ" սիստեմայում, չօգնեց:

Ամեն դեպքում դիալոգի ֆոնտը փոխելու հետ կապած ենթադրությունդ ճիշտ ա: Կարաս դնես Sylfaen ու առանց սիստեմայում բան փոխելու հայերեն տառերը ճիշտ կերևան դիալոգի վրա:
Կարաս ուրիշ ֆոնտ դնես (օրինակ Tahoma Armenian (http://hayeren.am/fonts/tahomaA.ttf)) ու համապատասխան ֆոնտը սիստեմայում էլ դնես, էլի կաշխատի:
Մի բացառություն կա, էս դեպքում դիալոգի թայթլում հայերենի փոխարեն էլի քառակուսիներ են:

http://i058.radikal.ru/1006/e2/30acd4971a72.png http://i068.radikal.ru/1006/42/7105c31c1d23.png

Ցավոք ավել բան չեմ կարա ասեմ, ֆոնտերից/լեզուներից շատ տեղյակ չեմ :)
Եթե ազատ ժամանակ ունենամ, կփորձեմ պարզել էտ ծիտիկի հետ բացի ֆոնտերից էլ ինչ ա փոխվում, որ հայերենը սկսում ա աշխատել:

min-mak
12.06.2010, 21:50
min-mak ջան, երևի ամենաճիշտ տարբերակը էտ ծիտիկը դնելն ա :) Էտ ժամանակ բացի ֆոնտերից, սիստեմայում էլի ինչ-որ բանա փոխվում (ենթադրում եմ ինչ-որ codepage-եր ու FontSubstitution-ներ ա փոխում/ավելացնում): Ես փորձեցի էտ ծիտիկի հետ ավելացող ֆոնտերը դնել "առանց ծիտիկ" սիստեմայում, չօգնեց:

Ամեն դեպքում դիալոգի ֆոնտը փոխելու հետ կապած ենթադրությունդ ճիշտ ա: Կարաս դնես Sylfaen ու առանց սիստեմայում բան փոխելու հայերեն տառերը ճիշտ կերևան դիալոգի վրա:
Կարաս ուրիշ ֆոնտ դնես (օրինակ Tahoma Armenian (http://hayeren.am/fonts/tahomaA.ttf)) ու համապատասխան ֆոնտը սիստեմայում էլ դնես, էլի կաշխատի:
Մի բացառություն կա, էս դեպքում դիալոգի թայթլում հայերենի փոխարեն էլի քառակուսիներ են:

http://i058.radikal.ru/1006/e2/30acd4971a72.png http://i068.radikal.ru/1006/42/7105c31c1d23.png

Ցավոք ավել բան չեմ կարա ասեմ, ֆոնտերից/լեզուներից շատ տեղյակ չեմ :)
Եթե ազատ ժամանակ ունենամ, կփորձեմ պարզել էտ ծիտիկի հետ բացի ֆոնտերից էլ ինչ ա փոխվում, որ հայերենը սկսում ա աշխատել:

LoK® ջան իսկ հնարավորա այնպես անել որ պրոյեկտի բոլոր օբյեկտների(button, edit ...) ֆոնտերը մի հրամանով փոխել?
ես ամեն մի օբյեկտի համար առաձին ֆոնտ եմ տալիս(այսպես օր. CButton m_but1; m_but1.SetFont(ֆոնտ), CEdit m_edit1; m_edit1.SetFont(ֆոնտ)...): չկա այնպիսի մի ձև որ դիալոգին տված ֆոնտը բոլորի համար դառնա դեֆաուլտ

LoK®
12.06.2010, 22:04
LoK® ջան իսկ հնարավորա այնպես անել որ պրոյեկտի բոլոր օբյեկտների(button, edit ...) ֆոնտերը մի հրամանով փոխել?
ես ամեն մի օբյեկտի համար առաձին ֆոնտ եմ տալիս(այսպես օր. CButton m_but1; m_but1.SetFont(ֆոնտ), CEdit m_edit1; m_edit1.SetFont(ֆոնտ)...): չկա այնպիսի մի ձև որ դիալոգին տված ֆոնտը բոլորի համար դառնա դեֆաուլտ
Դիալոգի Properties-ից լինում ա դիալոգի ֆոնտը ընտրել ;)

min-mak
12.06.2010, 22:32
Դիալոգի Properties-ից լինում ա դիալոգի ֆոնտը ընտրել ;)
էտի ես ել գիտեմ բայց իմ մոտ որ սեղմում եմ են փոքր կնոպկան(3 հատ կետով) որ ֆոնտը փոխեմ VS-ն լռվումա, դա VS 2008-ում էլ էր տենց, ինձ միշտ թվացելա թե դա բագ է որը չեն նկատել microsoft-ում, բայց փաստորեն քո մոտ աշխատումա:think

LoK®
12.06.2010, 22:47
էտի ես ել գիտեմ բայց իմ մոտ որ սեղմում եմ են փոքր կնոպկան(3 հատ կետով) որ ֆոնտը փոխեմ VS-ն լռվումա, դա VS 2008-ում էլ էր տենց, ինձ միշտ թվացելա թե դա բագ է որը չեն նկատել microsoft-ում, բայց փաստորեն քո մոտ աշխատումա:think
Հա իմ մոտ նորմալ ա: Քո մոտ երևի ֆոնտ ընտրելու դիալոգի հետ խնդիր կա, փորձել ե՞ս ուրիշ ծրագրում ֆոնտ փոխել:

min-mak
12.06.2010, 22:56
Հա իմ մոտ նորմալ ա: Քո մոտ երևի ֆոնտ ընտրելու դիալոգի հետ խնդիր կա, փորձել ե՞ս ուրիշ ծրագրում ֆոնտ փոխել:

հա ուրիշ ծրագրերում նորմալ աշխատումա(AkelPad, Opera) :think

LoK®
12.06.2010, 23:28
Դելավ, GUI-ից չի լինում, դու էլ .rc ֆայլը բացի, փոխի :)
.rc ֆայլում գտի դիալոգի սեկցիան`

/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_MY2010MFC_DIALOG DIALOGEX 0, 0, 141, 71
STYLE DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "Թեսթ"
FONT 8, "Tahoma Armenian", 400, 0, 0xCC
BEGIN
DEFPUSHBUTTON "Լավ",IDOK,7,50,50,14
PUSHBUTTON "Դելաավ",IDCANCEL,84,50,50,14
CTEXT "Ես գրված եմ tahoma armenian-ով",IDC_STATIC,7,20,127,8
END

ու ֆոնտի անունը քո ուզածը գրի:
Թվերը երևի պետք չլինի փոխել, բայց ամեն դեպքում դրանց նշանակությունը այստեղ (http://msdn.microsoft.com/en-us/library/aa381013(v=VS.85).aspx) գրած ա: