|
|
IDR_MENU1 MENU DISCARDABLE
BEGIN
POPUP "ポップアップメニュー1"
BEGIN
MENUITEM "ダイアログ内でのリストボックスのテスト", IDM_POPUP1_ACT1
MENUITEM "ポップアップメニュー1の処理2", IDM_POPUP1_ACT2
MENUITEM SEPARATOR
MENUITEM "列挙テスト用ポップアップメニューへ移動", IDM_ENUM
END
POPUP "ポップアップメニュー2"
BEGIN
MENUITEM "ドライブ一覧", IDM_ENUMDRIVE
MENUITEM "ポップアップメニュー2の処理2", IDM_POPUP2_ACT2
MENUITEM SEPARATOR
MENUITEM "ダイアログテスト用ポップアップメニューへ移動",
IDM_TESTDIALOG
END
END
| |
|
|
|
|
#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"
// *********************************************************
// 関数: 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 );
// メインウインドウ登録
Win = new LboxWin( hWnd );
// ステータスバー実装
Win->StatusCreate( ID_STATUS );
// ステータスバー表示
Win->StatusSetText( "ListView スケルトン" );
// デスクトップフィットサイズ
Win->ScreenFit( );
}
| |
|
|
|
|
#include "stdafx.h"
#define MyEXTERN extern
#include "ListView.h"
// *********************************************************
// 関数: EndWndProc
// *********************************************************
void EndWndProc( HWND hWnd )
{
// オブジェクト削除
delete Listbox;
delete Win;
delete Lview;
}
| |
|
|
|
|
#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;
}
| |
|
|
|