列挙テスト

  メニューリソース



  
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
  



  ListView.h



  
#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;	// リストボックスオブジェクト
  



  InitWndProc.cpp

  
#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( );

}
  



  EndWndProc.cpp

  
#include "stdafx.h"

#define MyEXTERN extern
#include "ListView.h"

// *********************************************************
//   関数: EndWndProc
// *********************************************************
void EndWndProc( HWND hWnd )
{
	// オブジェクト削除
	delete Listbox;
	delete Win;
	delete Lview;
}
  



  OperatorEvent.cpp

  
#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;
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ