リストボックス内にファイル名 – プログラミング – Home

リストボックス内にファイル名
 
通知
すべてクリア

[解決済] リストボックス内にファイル名


まっちゃん
 まっちゃん
(@まっちゃん)
ゲスト
結合: 23年前
投稿: 4
Topic starter  

初めてです。
リストボックス内にロングファイルネームを表示させたいのですが、うまくいきません。
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を使用。

正しく表示する方法なり、予測できる方お願いします。


引用未解決
トピックタグ
LEE
 LEE
(@LEE)
ゲスト
結合: 23年前
投稿: 2
 

CFileFindクラスを使用して、フォルダ内の、目的の拡張子の
ファイルを抽出し、それをリストボックスに表示するように
変更しないとだめだと思います。
リストボックスのDir()関数は、ロングファイル名に変換して
出力するモードは無かったと思います。
それでは。


返信引用
CdS
 CdS
(@CdS)
ゲスト
結合: 24年前
投稿: 176
 

手元にWin98がないので何ともいえませんが、できないものは仕方ないのではないのでしょうか。
95では8.3形式になるとMSDNに書いてあり、98については特に明記していませんが、もしかしたら
そういうものかも知れません。

ということでCFileFindでファイルを検索し、独自に実装すればいいかと思います。
さほど難しいことではないはずです。

#マルチポストは控えるべきでしょうね。


返信引用
まっちゃん
 まっちゃん
(@まっちゃん)
ゲスト
結合: 23年前
投稿: 4
Topic starter  

CdSさんへ。
大変すみませんが、恥と知って、具体的に教えていただけないでしょうか?
何分、C言語、VC++自体初めてで。。。誠にすみません。


返信引用
CdS
 CdS
(@CdS)
ゲスト
結合: 24年前
投稿: 176
 

具体的にって言われてもねぇ...。
まずCFileFindを調べてみましょうよ...。

#恥とかそういう問題ではありません。


返信引用
TOTO
 TOTO
(@TOTO)
ゲスト
結合: 24年前
投稿: 29
 

すいません。
突然乱入してきて、
ただ、
>#マルチポストは控えるべきでしょうね。
のマルチポスト意味がわからなかったものですから、
時折、ここの文章の中で使われているのですが意味がわかりません。
ヘルプ見ても載ってません。
教えてください。
宜しくお願いします。


返信引用
CdS
 CdS
(@CdS)
ゲスト
結合: 24年前
投稿: 176
 

[使用上の注意] に書いてあると思うんですが...。
読まずに投稿しているということですね...。

そうでなくてもgoogleなどで調べるくらいはしましょう。
これに限ったことではありませんけど。


返信引用
TOTO
 TOTO
(@TOTO)
ゲスト
結合: 24年前
投稿: 29
 

すいません。
いつもCdSさんには御迷惑をおかけしております。
今後は気をつけます。


返信引用
まっちゃん
 まっちゃん
(@まっちゃん)
ゲスト
結合: 23年前
投稿: 4
Topic starter  

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());
}

}
とすることで、リストボックスにロングファイル名が表示されました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました