|
|
#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 );
void LoadFile( void );
#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"
// *********************************************************
// 関数: InitWndProc
// *********************************************************
void InitWndProc( HWND hWnd )
{
// リストボックス作成
Listbox = new LboxListbox(
hWnd,
ID_LISTBOX
);
// リストビューの作成
Lview = new LboxListview(
hWnd,
LBOX_LISTVIEW_CREATE
);
// グリッドオプション
Lview->Grid( );
// フォント設定 ( MS Pゴシック )
Lview->SetFont( 0, 10, false );
// ポップアップメニューの実装
Lview->CreatePopup( IDR_MENU1, 0 );
// カラム作成
Lview->AddColumn( LVCFMT_LEFT, 100, "ファイル名" );
Lview->AddColumn( LVCFMT_RIGHT,100, "サイズ" );
Lview->AddColumn( LVCFMT_LEFT, 150, "更新日" );
Lview->AddColumn( LVCFMT_LEFT, 100, "" );
Lview->AddColumn( LVCFMT_LEFT, 100, "8.3ファイル名" );
// カレントディレクトリ情報の設定
LoadFile( );
// メインウインドウ登録
Win = new LboxWin( hWnd );
// ステータスバー実装
Win->StatusCreate( ID_STATUS );
// ステータスバー表示
Win->StatusSetText( "ListView スケルトン" );
// デスクトップフィットサイズ
Win->ScreenFit( );
}
| |
|
|
|
|
#include "stdafx.h"
#define MyEXTERN extern
#include "ListView.h"
// *********************************************************
// 関数: WndProc
// *********************************************************
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch( message ) {
// 初期処理
case WM_CREATE:
InitWndProc( hWnd );
break;
// サイズ変更
case WM_SIZE:
Win->StatusFit( wParam, lParam );
Lview->ParentFit(
(DWORD)wParam,
0, 0,
0, Win->GetHeight( Win->hStatus )
);
break;
// オペレータイベント
case WM_COMMAND:
return OperatorEvent( hWnd, message, wParam, lParam );
// リストビューの通知イベント
case WM_NOTIFY:
Lview->Notify( lParam );
// 該当リストビューからの通知の時
if ( Lview->hCurrent == Lview->hWnd ) {
// ダブルクリック
if ( Lview->Action == NM_DBLCLK ) {
// 正しく行が選択されていない時は何もしない
if ( Lview->nCurrentRow == -1 ) {
break;
}
// ファイル名を取得
Lview->GetColumnText(
0,
szBuffer,
sizeof( szBuffer )
);
// ディレクトリならば、そこへ移動して一覧表示
if ( Fs.IsDirectory( szBuffer ) ) {
Fs.ChangeDirectory( szBuffer );
LoadFile( );
}
}
}
break;
// 終了処理
case WM_DESTROY:
EndWndProc( hWnd );
PostQuitMessage( 0 );
break;
default:
return DefWindowProc( hWnd, message, wParam, lParam );
}
return 0;
}
| |
|
|
|