初めてです。
リストボックス内にロングファイルネームを表示させたいのですが、うまくいきません。
void CPair01Dlg::OnButton6()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
m_list11.Dir(DDL_READONLY,c:\\windows\\デスクトップ\\pair01\\*.bmp);
}
void CPair01Dlg::OnDblclkList1()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
CString filename;
int nn;
CFile file;
BITMAPINFOHEADER myBmpInfoHdr;
nn=m_list11.GetCurSel();
if(nn!=LB_ERR){
m_list11.GetText(nn,filename);
}
if(!file.Open(filename,CFile::modeRead|CFile::typeBinary)){
return;
}
・・・・・途中割愛(BMPの情報を取り込んで、OnPaintでピクチャーBOXに表示)・・・・
}
リストボックス内にファイル名を取り込むとロングファイルネームが
表示できません。
例えば)
・fruits128_160.bmp→fruits~1.bmp
・チューリップ120_16i→チュー~1.bmp
と表示されてしまいます。
OSはWindows98SE上でVC++6.0を使用。
正しく表示する方法なり、予測できる方お願いします。
CFileFindクラスを使用して、フォルダ内の、目的の拡張子の
ファイルを抽出し、それをリストボックスに表示するように
変更しないとだめだと思います。
リストボックスのDir()関数は、ロングファイル名に変換して
出力するモードは無かったと思います。
それでは。
手元にWin98がないので何ともいえませんが、できないものは仕方ないのではないのでしょうか。
95では8.3形式になるとMSDNに書いてあり、98については特に明記していませんが、もしかしたら
そういうものかも知れません。
ということでCFileFindでファイルを検索し、独自に実装すればいいかと思います。
さほど難しいことではないはずです。
#マルチポストは控えるべきでしょうね。
CdSさんへ。
大変すみませんが、恥と知って、具体的に教えていただけないでしょうか?
何分、C言語、VC++自体初めてで。。。誠にすみません。
具体的にって言われてもねぇ...。
まずCFileFindを調べてみましょうよ...。
#恥とかそういう問題ではありません。
すいません。
突然乱入してきて、
ただ、
>#マルチポストは控えるべきでしょうね。
のマルチポスト意味がわからなかったものですから、
時折、ここの文章の中で使われているのですが意味がわかりません。
ヘルプ見ても載ってません。
教えてください。
宜しくお願いします。
[使用上の注意] に書いてあると思うんですが...。
読まずに投稿しているということですね...。
そうでなくてもgoogleなどで調べるくらいはしましょう。
これに限ったことではありませんけど。
すいません。
いつもCdSさんには御迷惑をおかけしております。
今後は気をつけます。
void CPair01Dlg::OnButton6()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
// m_list11.Dir(DDL_READONLY,*.bmp);
CListBox *pList=(CListBox*)GetDlgItem(IDC_LIST1);
CFileFind finder;
BOOL bWork = finder.FindFile(*.bmp);
while (bWork)
{
bWork = finder.FindNextFile();
pList->AddString(finder.GetFilePath());
}
}
とすることで、リストボックスにロングファイル名が表示されました。