タイトル : Re^10: ファイルパスの機種依存文字を取得する方法について 投稿日 : 2014/12/11(Thu) 11:44 投稿者 : マサタロウ
> TextOutW h, x, y, StrPtr(s), Len(s) > TextOutW h, x, y, StrPtr(Text), Len(Text) GetOpenFileName関数で試しましたが、 半角中点は表示されたままでした。 For〜Next、Mid、Leftで、GetOpenFileName関数の .lpstrFileプロパティのパスのみ取得する事ができました。 同様の方法で、GetOpenFileNameW関数のパスのみ取得する 事ができると思います。 > > 関数(DrawText)を使用してTextOutWを実行するのは、数値を取得するためですか? > そもそも、今回のサンプルにある DrawText は『関数』ではありません。 DrawTextという関数があることは知りませんでした。 自作の関数と思いました。 Subプロシージャー DrawTextで、TextOutWに文字列の先頭アドレスを 指定すると文字列が描画できる仕組みがはっきりしません。 文字列変数が格納されている場所を指定する(StrPtr)と 文字列が描画できるということはわかります。 > > TextOutW関数で、.lpstrFileのプロパティが数値で表示されるため、 > > 型をString型に変更して上記のコードで実行すると、パス名を表示できました。 > > それは、TextOutA を使う場合のやり方です。TextOutW では String にしてはいけません。 GetOpenFileNameW関数の.lpstrFileプロパティの内容が数値になります。 .lpstrFileプロパティの内容を文字列に変換できますか? DrawText Picture1.hDC, StrPtr(udtOFN.lpstrFile), 1, 0 では数値が表示されます。 |