ファイラ


  ディレクトリをリストビューの先頭に集める

ファイラスケルトンのままでは、ディレクトリとファイルがバラバラに表示されています。そこで、ディレクトリのみをリストビューの先頭に集める事を考えます。

リストビューのデータは、もともとは LboxEnumFile( Listbox->hWnd, 0 ) によってリストボックスにセットされているものですから、リストボックスからリストビューに転送する時に、まずディレクトリのみを転送し、再度リストボックスを最初から読み直してディレクトリ以外を転送すれば実現できます。その判断は4番目の項目で行います

  ディレクトリを [] で囲ってディレクトリである事を解りやすくする

ただセットするだけでは、ディレクトリ変更する場合の文字列として使っているので、その場合は元に戻す必要があります。もし szBuffer の中に "[ABC]" というディレクトリ名が入っていた場合、まず最後の1文字を 0x00 に変更します

  

szBuffer[lstrlen(szBuffer)-1] = 0x00;
  

その後、szBuffer + 1 を Fs.IsDirectory と Fs.ChangeDirectory の引数として渡します


  タイトルに現在のディレクトリをセットする

LoadFile の最初でカレントディレクトリを取得して、タイトルにセットします。 LboxWin オブシェクトを使うので、InitWndProc の LoadFile は、関数の最後に実行するようにします、

  ディレクトリ以外の行をダブルクリックしたらそのファイルを実行する

LboxTool オブジェクトに Execute メソッドがあります。第一引数にコマンドラインを指定して第二引数には NULL を指定します。コマンドラインは "実行ファイル名" "実行されるパス" という形式にします。ダブルクォーテーションも必要です。

実行ファィル名の取得は、LboxWin オブジェクトから、Executable メソッドを実行して取得します。但し、Executable メソッドの戻り値が false ならば、該当する実行プログラムは定義されていないので何もしないで下さい

  ドライブとディレクトリの変更

LboxCommdlg オブジェクトの GetFolderName メソッドを使用します。これは、ダイアログが表示されるので選択した場合は true が返ります。その場合、ディレクトリパスが取得されるので、その文字列で LboxFileSystem の ChangeDirectory メソッドを実行します。

ドライブが変更された場合は、LboxInifile オブジェクトを使用して変更される前のディレクトリを保存しておき、次回ドライブのみの変更がされた時に使用してそのディレクトリをカレントにします。また、アプリケーションが終了する時のディレクトリも保存し、次回実行時に復帰させます

  ファイルのコピー

LboxFileSystem の オブジェクトの Copy メソッドか ShellCopy メソッドを使用します。ディレクトリごとコピーしたい場合は ShellCopy を使用します。

ShellCopy メソッドには二種類あり、一つは対象ファイルがひとつのみです。とかしもう一つはリストボックスを使用して複数のファイルが指定できるようになっています

また、ドラッグドロップ対応すれば、エクスプローラからファイルをコピーできます

  ファイルの削除

LboxFileSystem の オブジェクトの Copy メソッドか ShellDelete メソッドを使用します。対象ファイルをフルパスで指定すると、ゴミ箱への移動が可能です。

  ファイル単位にシステムの小さなアイコンを表示させる

  

まず、イメージリストオブジェクトを作成して、システムイメージリストを取得します

Imglist = new LboxImagelist();
Imglist->CreateSystemFile( );
  

  

そのイメージリストをリストビューに実装します

Lview->SetImageList( Imglist );
  

  

LoadFile 関数の行追加の直後でイメージをセットします

Lview->SetImage(
	Lview->nCurrentRow,
	0,
	Fs.SmallIconIndex( Lview->Token[0] )
);
  




yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[cmstdseed]
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
24/04/20 02:38:18
InfoBoard Version 1.00 : Language=Perl

1 BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube