コード名称マスタメンテ


  Dialog_51.cpp



  
#include "stdafx.h"

#include "App_51.h"

static App_51 *CurApp;
static LboxListview *Lview;
static LboxImagelist *Imglist;
// *********************************************************
// ダイアログの処理
// *********************************************************
LRESULT CALLBACK Dialog_51(
HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )
{
	switch( message ) {
		case WM_INITDIALOG:
			bEnd = false;

			Lview = new LboxListview(
				GetDlgItem( hDlg, IDC_LIST ),
				LBOX_LISTVIEW_EDITABLE
			);
			Lview->Grid( );
			Lview->SetFont( 0, 9, false );
			// リストビューの入力データ型の設定
			Lview->SetColumnType( "0,1,0,0,1,1" );
			// リストビューの入力サイズの設定
			Lview->SetColumnSize( "0,10,10,50,10,10" );

			// イメージリストの準備
			Imglist = new LboxImagelist();
			Imglist->Create( 12, 12 );
			Imglist->Add( hDlg, IDB_ROWHEAD1, 255,255,255 );
			Imglist->Add( hDlg, IDB_ROWHEAD2, 255,255,255 );
			Imglist->Add( hDlg, IDB_ROWHEAD3, 255,255,255 );

			// リストビューにイメージリストを実装
			Lview->SetImageList( Imglist );

			CurApp = new App_51( hDlg, Lview );
			// 初期フォーカス
			Dlg->EditFocus( IDC_KUBUN );
			return FALSE;

		case LBOX_RETURN:
			// Enter キーをタブ扱いしないコントロール
			if ( Dlg->GetHandle( IDC_CHECK ) == (HWND)wParam ) {
				break;
			}
			Tool.TabKey();
			break;

		case LBOX_LV_HEADCLICK:
			if ( (int)lParam != 0 ) {
				Lview->GetColumnTitle( (int)lParam, Column );
				if ( Tool.IsShift() ) {
					Column->operator += (" desc ");
				}
				CurApp->DataRequest();
			}
			break;

		// リストビューの入力直後のイベント
		case LBOX_LV_EDITDONE:
			if ( Lview->IsHandle( (HWND)wParam ) ) {
				int nImage;
				nImage = Lview->GetImage( LOWORD(lParam), 0 );
				if ( nImage == 0 ) {
					Lview->SetCurrentRow( LOWORD(lParam) );
					Lview->GetColumnText( HIWORD(lParam), Item );
					if ( Item->operator != ( Work ) ) {
						Lview->SetImage(
							LOWORD(lParam),
							0,
							2
						);
					}
				}
			}
			break;

		// クリックでフィールド編集
		case LBOX_LV_CLICK:
			// 条件演算子
			if ( Lview->IsHandle( (HWND)wParam ) ) {
				// 行とカラム
				int nRow,nCol;
				nRow = LVROW( lParam );
				nCol = LVCOL( lParam );
				// 区分が未選択の場合は編集しない
				CurApp->Kubun->SelectedGetData( Item );
				if ( Item->operator == ( "" ) ) {
					break;
				}
				// データのある行が選択されている
				if ( LVROW(lParam) != -1 ) {
					int nImage;
					switch( HIWORD(lParam) ) {
					case 2:
					   nImage = Lview->GetImage( nRow, 0 );
					   if ( nImage == 1 ) {
					      Lview->SetCurrentRow( nRow );
					      Lview->GetColumnText( nCol, Work );
					      Lview->LoadColumnText( nRow, nCol );
					   }
					   break;
					case 3:
						Lview->SetCurrentRow( nRow );
						Lview->GetColumnText( nCol, Work );
						Lview->LoadColumnText( nRow, nCol );
						break;
					case 4:
						Lview->SetCurrentRow( nRow );
						Lview->GetColumnText( nCol, Work );
						Lview->LoadColumnText( nRow, nCol );
						break;
					case 5:
						Lview->SetCurrentRow( nRow );
						Lview->GetColumnText( nCol, Work );
						Lview->LoadColumnText( nRow, nCol );
						break;
					}
				}
			}
			break;

		// リストビューの通知イベント
		case WM_NOTIFY:
			if ( Lview != NULL ) {
				Lview->Notify( hDlg, lParam );
			}
			break;

		case WM_COMMAND:
			// 終了
			if( LOWORD(wParam) == IDCANCEL ) {
				bEnd = true;
				delete Imglist;
				delete Lview;
				delete CurApp;
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}

			// ABOUT
			if( LOWORD(wParam) == IDM_ABOUT ) {
				DialogBox(
					hInst,
					(LPCTSTR)IDD_ABOUTBOX,
					hDlg,
					(DLGPROC)About
				);
			}

			// アプリケーションの終了
			if( LOWORD(wParam) == IDM_EXIT ) {
				Dlg->SendMsg(
					WM_COMMAND,
					MAKEWPARAM( IDCANCEL, 0 ),
					0
				);
			}

			// 行追加
			if ( LOWORD(wParam) == IDM_ROWINSERT ) {
				CurApp->AddRow();
			}

			// 更新
			if ( LOWORD(wParam) == IDM_UPDATE ) {
			}

			// 検索
			if ( LOWORD(wParam) == IDC_CHECK ) {
				CurApp->DataRequest();
			}

			// クリア
			if ( LOWORD(wParam) == IDC_CLEAR ) {
				CurApp->Kubun->Select( -1 );
				Lview->DestroyPopup( );
				Lview->Reset();
			}

			// 区分コンボボックスのイベント処理
			if ( LOWORD(wParam) == IDC_KUBUN ) {
				if ( bEnd ) {
					break;
				}
				if ( HIWORD(wParam) == CBN_KILLFOCUS ) {
					Dlg->StatusSetText("");
				}
				if ( HIWORD(wParam) == CBN_SELCHANGE ) {
					CurApp->Kubun->SelectedGetData( Item );
					if ( Item->operator == ( "" ) ) {
						Lview->DestroyPopup( );
					}
					else {
						Lview->CreatePopup( IDR_ACTION, 0 );
					}
					Dlg->SendMsg(
						WM_COMMAND,
						MAKEWPARAM( IDC_CHECK, 0 ),
						0
					);
				}
			}
			break;
	}
	return FALSE;
}
  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ