日本語(UniCode)の表示
UniCodeで書かれた日本語を表示するサンプルプログラム(Visual C++ 2008/CLR)を作成してみました。
ソースコードファイル(ソリューション)をZIPファイルとしてまとめました。
ここをクリックするとダウンロードできます。
ダウンロードしたファイルを解凍後、Visual C++ 2008/CLRで開いて下さい。
VSGV8.LIBは御使用の環境に合わせて必要ならば設定しなおして下さい。
この設定は、メニュ「プロジェクト|既存の項目の追加」を選ぶことによりできます。
本プログラムはViSaGeにおいて動作を確認しました。
コード(2009.8.17改訂)は以下のようになっています。
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
vsgInit("");
vsgSetCommand(vsgPALETTECLEAR);
int Height = vsgGetScreenHeightPixels();
vsgSetDrawPage(vsgVIDEOPAGE,
0, 0);
vsgSetDisplayPage(0);
VSGTRIVAL white;
white.a
= 1.0;
white.b
= 1.0;
white.c
= 1.0;
vsgPaletteSet(
1, 1, &white );
vsgSetPen1(
1 );
VSGTRIVAL
black;
black.a
= 0.0;
black.b
= 0.0;
black.c
= 0.0;
vsgPaletteSet(
2, 2, &black );
vsgSetPen2(2);
vsgSetDrawMode(vsgANTIALIASED);
vsgSetTrueTypeFont("Arial Unicode MS");
vsgSetStringMode(0,
Height / 8, vsgALIGNCENTRETEXT, vsgALIGNCENTRETEXT, 0, 0);
String
^ s1 = L"日本女子大学";
WORD
ww1[100];
for (int i = 0; i
< s1->Length; i++) ww1[i] = s1[i];
ww1[s1->Length]
= 0;
vsgDrawStringUnicode(
0, -Height / 4, ww1 );
String
^ s2 = L"心理学科";
WORD
ww2[100];
for (int i = 0; i
< s2->Length; i++) ww2[i] = s2[i];
ww2[s2->Length]
= 0;
vsgDrawStringUnicode(
0, 0, ww2 );
String
^ s3 = L"計量心理学";
WORD
ww3[100];
for (int i = 0; i
< s3->Length; i++) ww3[i] = s3[i];
ww3[s3->Length]
= 0;
vsgDrawStringUnicode(
0, Height / 4, ww3 );
}
他のVisual C++2008/CLRプログラム例はここをクリック