#include "resource.h"
#include <lightbox.h>
ATOM MyRegisterClass( HINSTANCE hInstance );
BOOL InitInstance( HINSTANCE, int );
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
LRESULT CALLBACK About( HWND, UINT, WPARAM, LPARAM );
void InitWndProc( HWND hWnd );
void EndWndProc( HWND hWnd );
LRESULT CALLBACK OperatorEvent( HWND, UINT, WPARAM, LPARAM );
LRESULT CALLBACK TestDialogListbox( HWND, UINT, WPARAM, LPARAM );
#define MAX_LOADSTRING 100
#define ID_STATUS (LBOX_ID_BASE+1)
#define ID_LISTBOX (LBOX_ID_BASE+2)
MyEXTERN HINSTANCE hInst;
MyEXTERN TCHAR szTitle[MAX_LOADSTRING];
MyEXTERN TCHAR szWindowClass[MAX_LOADSTRING];
MyEXTERN char szBuffer[1024]; // 共通作業バッファ
MyEXTERN LboxTool Tool; // ツールオブジェクト
MyEXTERN LboxFileSystem Fs; // ファイルシステムオブジェクト
MyEXTERN LboxWin *Win; // ウインドウオブジェクト
MyEXTERN LboxListview *Lview; // ツリービューオブジェクト
MyEXTERN LboxDlg *Dlg; // ダイアログオブジェクト
MyEXTERN LboxListbox *Listbox; // リストボックスオブジェクト
#include "stdafx.h"
#define MyEXTERN extern
#include "ListView.h"
// *********************************************************
// 関数: OperatorEvent
// *********************************************************
LRESULT CALLBACK OperatorEvent(
HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
int wmId, wmEvent;
int i,j;
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch( wmId ) {
case IDM_ABOUT:
// About ダイアログ呼び出し
DialogBox( hInst,
(LPCTSTR)IDD_ABOUTBOX,
hWnd,
(DLGPROC)About
);
break;
case IDM_EXIT:
// アプリケーション終了
Win->Destroy( );
break;
// ダイアログ内でのリストボックスのテスト
case IDM_POPUP1_ACT1:
// TestDialogListbox ダイアログ呼び出し
DialogBox( hInst,
(LPCTSTR)IDD_DIALOG1,
hWnd,
(DLGPROC)TestDialogListbox
);
break;
case IDM_ENUM:
// 列挙テスト用ポップアップメニューへ移動
Lview->nCurrentPopup = 1;
break;
case IDM_TESTDIALOG:
// ダイアログテスト用ポップアップメニューへ移動
Lview->nCurrentPopup = 0;
break;
// ドライブの列挙
case IDM_ENUMDRIVE:
// リストボックスをクリア
Listbox->Reset( );
// 一覧をロード
LboxEnumDrive(
Listbox->hWnd,
0
);
// リストビューを初期化
Lview->Initialize( );
// カラム作成
Lview->AddColumn( LVCFMT_LEFT, 100, "ドライブ" );
Lview->AddColumn( LVCFMT_LEFT, 100, "種別" );
for( i = 0; i < Listbox->Count( ); i++ ) {
// リストボックスの行データを取得
Listbox->GetText( i, szBuffer, sizeof( szBuffer ) );
// トークン分解
Lview->CreateToken( szBuffer, "\t" );
// リストビューへ行を追加
Lview->AddRow( );
// トークンをカラムへセット
for( j = 0; j < 2; j++ ) {
Lview->SetColumnText( j, Lview->Token[j] );
}
}
// カラム幅の最適化
Lview->Fit( );
break;
default:
return DefWindowProc( hWnd, message, wParam, lParam );
}
return 0;
}