PDA

View Full Version : سوال: مشگل در فارسي نويسي در سي پلاس پلاس



Jenab4372
سه شنبه 09 تیر 1388, 21:12 عصر
سلام
من در حال تمرين براي آموزش پروژه MFC با VC++ 2008 هستم.
در انجام يك پروژه ساده Dialog Base به جاي انگليسي از فارسي استفاده كردم ولي بعد از كامپايل برنامه خروجي به ? تبديل ميشود.
لطفا راهنمايي نماييد كه چگونه ميشود خروجي برنامه كاملا فارسي باشد.
آيا كلا فارسي ساپورت نميشود و يا تنظيمات خاصي دارد و يا به كتابخانه هاي خاصي نياز است.
من برنامه نويس در صطح متوسط توي TC++ DOS بودم كه حالا يك ماهي هست به دليل علاقه به ويندوز روي آوردم.
عكس را هم گذاشتم.
با تشكر

http://jenab.persiangig.com/image/Jenab.jpg

hamird
سه شنبه 09 تیر 1388, 22:17 عصر
دلیل علامت سوال ها مربوط به یونی کد هست، ولی من فقط در همین حد می دونم. فقط گفتم که اگر می خوای توی سایت ها سرچ کنی بدونی دنبال چی باید بگردی..

Nima_NF
سه شنبه 09 تیر 1388, 23:04 عصر
در resource view دیالوگ مورد نظر را انتخاب کنید (دابل کلیک نکنید فقط ID دیالوگ را انتخاب کنید تا تنظیمات آن ظاهر شود)
سپس در فیلد language در قسمت properties زبان را farsi قرار دهید.

توجه کنید که احتمالا تمامی فارسی های نوشته شده قبلی به ??? تبدیل می شود، و باید مجددا در این حالت فارسی بنویسید تا درست ذخیره شود.

Jenab4372
چهارشنبه 10 تیر 1388, 08:40 صبح
سلام
با تشكر از جناب مدیر بخش عزيز كه لطف ميكنند و بدون هيچ چشمداشتي كمك مينمايند.
فقط با زدن يك دكمه تشكر نميشود زحمات شما را جبران نمود.

مشگل من برطرف شد ولي در يك EDIT CONTROL با كد نويسي قصد گذاشتن يه متن فارسي داشتم ولي باز به صورت ؟ نشان داده ميشود لطفا راهنمائي نماييد.
عكس هم كذاشتم
با تشكر.
http://jenab.persiangig.com/image/Jenab2.jpg

Nima_NF
چهارشنبه 10 تیر 1388, 19:23 عصر
چون برنامه شما بر اساس فارسی هست، یعنی یونیکد هست. پس هر جایی که قرار هست مستقیم با کوتیشن رشته ای بنویسید (چه فارسی و چه انگلیسی) باید با پیشوند L یا _Tهمراه باشد تا آن را یونیکد ذخیره کند. (دقت کنید همه جای برنامه، حتی هنگام ارسال به توابع و ...):




m_editStr = L"Farsi or English here";
m_editStr = _T("Farsi or English here");


در مثال فوق داخل تگ کد در فروم نمی شه فارسی نوشت، خودتان رشته داخل " " را فارسی بنویسید.

Jenab4372
پنج شنبه 11 تیر 1388, 17:30 عصر
سلام
اما هنوز يك مشگل با فارسي نويسي در قسمت Data يك Combo Box وجود دارد چون هر چه فارسي مينويسم باز علامت ؟ نشان داده ميشود.
لطفا راهنمائي بفرماييد.
عكس هم كذاشتم
http://jenab.persiangig.com/BJ/Jenab4.jpg

Nima_NF
پنج شنبه 11 تیر 1388, 19:09 عصر
یک متغیر از نوع CComboBox بسازید و سپس در رویداد OnInitDialog کد زیر را بنویسید و کدهایتان را اضافه کنید.( از خاصیت data استفاده نکنید):



combo1.InsertString( 0, _T("farsi text here 1") );
combo1.InsertString( 1, _T("farsi text here 2") );
combo1.InsertString( 2, _T("farsi text here 3") );