|
#include "stdafx.h"
#include "App_51.h"
static App_51 *CurApp;
static LboxListview *Lview;
// *********************************************************
// ダイアログの処理
// *********************************************************
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->ApplyCheckbox( true );
// ポップアップメニューを実装
Lview->CreatePopup( IDR_ACTION, 0 );
CurApp = new App_51( hDlg, Lview );
// 初期フォーカス
Dlg->EditFocus( IDC_COND );
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 WM_NOTIFY:
if ( Lview != NULL ) {
Lview->Notify( hDlg, lParam );
}
break;
case WM_COMMAND:
// 終了
if( LOWORD(wParam) == IDCANCEL ) {
bEnd = true;
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_ON ) {
CurApp->SelectCheck();
}
// 選択行のチェックを外す
if ( LOWORD(wParam) == IDM_OFF ) {
CurApp->SelectCheckOff();
}
// 削除
if ( LOWORD(wParam) == IDM_DELETE ) {
// 本当は、ここで未選択のチェックを行います
GetMessageString( "0102" );
if ( Dlg->MsgOkCancel( Message ) ) {
if ( CurApp->DeleteData() ) {
GetMessageString( "5001" );
Dlg->StatusSetText(Message);
CurApp->DataRequest();
Dlg->EditFocus( IDC_COND );
}
}
}
// 検索
if ( LOWORD(wParam) == IDC_CHECK ) {
CurApp->DataRequest();
}
// クリア
if ( LOWORD(wParam) == IDC_CLEAR ) {
Dlg->EditSetText( IDC_COND, "" );
Lview->Reset();
}
// ステータスバーのクリア
if ( LOWORD(wParam) == IDC_COND ) {
if ( bEnd ) {
break;
}
if ( HIWORD(wParam) == EN_KILLFOCUS ) {
Dlg->StatusSetText("");
}
}
break;
}
return FALSE;
}
| |