前回は質問に答えていただきありがとうございました。
今回もお世話になりたいと思います。
今回はリストビューのカラムが押されたら、
リストビューに表示されているものをソートをしようとしています。
しかし英半角と全角が混在しているので、
どうやってソートをやったらいいのか見当もつきません。
一応私自身MSDNやネット検索で調べたのですが、見つかりませんでした。
2バイト文字を判別する関数はあるのでしょうか?
もし無いとしたらどのように判別したらよろしいでしょうか?
どうぞご助言お願いいたします。
失礼、環境を書き忘れてました。
Win2k, VC++6.0 MFCのダイアログベースで開発しております
ソートの基準は何ですか?
普通はstrcmpでそのまま比較してしまいますが。
>2バイト文字を判別する関数
ソートはともかく全角チェックは
IsDBCSLeadByte()なんかどう?
ご返答ありがとうございます。
> YuO様
ファイルやフォルダ名を昇順に並べようとしています。
エクスプローラのような並び方になれば…と考えています。
strcmpには全角文字が入っても大丈夫なのでしょうか?
試してみます。
> JUN2様
なるほど、こういうのがあったのですね。
これから御二方の返答を参考に実際に組んでみたいと思います。
エクスプローラって辞書順だからstrcmpではだめですね。
CompareString APIを使うといけるかと。
ご返答ありがとうございます!
> YuO様
おぉ、これはけそうですね〜。
これを使ってがんばってみたいと思います。
どれくらいかかるかわかりませんが結果報告いたします
CListViewのアイテムをソートするには
通常GetListCtrl()にてCListCtrlのポインタを取得し
SortItems関数によって行います。
http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_LVitemsort.html
ここにやり方が書いてありますので
参考にしてください。
ツイート | ![]() |