case WM_CREATE: CreateMutex( NULL, false, "MyMutex" ); Win = new LboxWin( hWnd ); Win->StatusCreate( 0 ); Lview = new LboxListview( hWnd, LBOX_LISTVIEW_CREATE ); Lview->Grid( ); Lview->SetFont( 0, 10, false ); Lview->AddColumn( "パス" ); Lview->Fit(); Lview2 = new LboxListview( hWnd, LBOX_LISTVIEW_CREATE ); Lview2->Grid( ); Lview2->SetFont( 0, 10, false ); Lview2->AddColumn( "" ); Lview2->AddColumn( "テキスト" ); Lview2->AddColumn( "ファイル名" ); Lview2->Fit(); break;
void StringSearch( LboxString *Path, LboxString *Target ) { LboxTextFile Txt; LboxString Buffer; Buffer.Resize( 10000 ); int nRow; if ( !(Txt.ReadOpen( Path )) ) { return; } nRow = 0; while( Txt.Get( &Buffer ) ) { nRow++; if ( Buffer.Search( Target ) ) { HANDLE hMutex; hMutex = OpenMutex( SYNCHRONIZE, false, "MyMutex" ); if ( hMutex != NULL ) { WaitForSingleObject( hMutex, INFINITE ); Lview2->AddRow(); Lview2->SetColumnPrintf( 0, "%lu", nRow ); Lview2->SetColumnText( 1, &Buffer ); Lview2->SetColumnText( 2, Path ); ReleaseMutex( hMutex ); CloseHandle( hMutex ); } } } Txt.Close(); }
case LBOX_LV_DBLCLK: if ( Lview2->IsHandle( (HWND)wParam ) ) { // 行が選択されている if ( LVROW(lParam) != -1 ) { LboxString TargetFile; LboxString TargetRow; HANDLE hMutex; hMutex = OpenMutex( SYNCHRONIZE, false, "MyMutex" ); if ( hMutex != NULL ) { WaitForSingleObject( hMutex, INFINITE ); Lview2->SetCurrentRow( LVROW(lParam) ); Lview2->GetColumnText( 2, &TargetFile ); Lview2->GetColumnText( 0, &TargetRow ); ReleaseMutex( hMutex ); CloseHandle( hMutex ); LboxTool Tool; LboxString Command; Command.Printf( "\"%s\" /jl=%s \"%s\"", "C:\\Program Files\\tpad\\TeraPad.exe", TargetRow.szLboxString, TargetFile.szLboxString ); Tool.Execute( &Command, NULL ); } } } break;
Lview3 = new LboxListview(); Lview3->hWnd = Lview2->hWnd;