商品マスタ登録に、商品分類マスタ問合せを実装

  IDD_DIALOG_51 を、商品マスタ登録にコピー



IDD_DIALOG_01 の商品分類(IDC_SBUNRUI) の横にボタンを追加(IDC_REF51)して、そのボタンから呼び出すダイアログとします。その為、メニュー機能は不要となるのでプロパティより削除します



  MTN.h に定義を追加



関数の宣言と、問合せダイアログに引き渡すパラメータ用の構造体を定義します

  
LRESULT CALLBACK Dialog_51(HWND, UINT, WPARAM, LPARAM);

typedef struct _App_51_Interface {
	int nIdCode;
	int nIdName;
	LboxDlg *Dlg;
} App_51_Interface;
  



  App_51 のコンストラクタの変更

内部参照ダイアログなので、最小化ボタンを省きます

  
// *********************************************************
// コンストラクタ
// *********************************************************
App_51::App_51( HWND hDlg, LboxListview *Lview )
{

	Lv = Lview;

	// ダイアログオブジェクト作成
	Dlg = new LboxDlg( hDlg );
	Dlg->ChangeStyle( WS_SYSMENU, 0 );
	Dlg->ChangeExStyle( WS_EX_APPWINDOW, 0 );
	Dlg->StatusCreate( 0 );

	// プログラムID
	Dlg->EditSetText( IDC_PROGID, "HR510" );

	// 項目属性設定

}
  



  Dialog_51.cpp

  
#include "stdafx.h"

#include "App_51.h"

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

			bEnd = false;

			Lview = new LboxListview(
				GetDlgItem( hDlg, IDC_LIST ),
				LBOX_LISTVIEW_EDITABLE
			);
			Lview->Grid( );
			Lview->SetFont( 0, 9, false );

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

			Dlg->MoveWindow(
				Tool.DesktopWidth() - Dlg->Width(),
				0
			);
			return FALSE;

		case WM_NOTIFY:
			if ( Lview != NULL ) {
				Lview->Notify( hDlg, lParam );
			}
			break;

		case LBOX_LV_DBLCLK:
			Lview->GetColumnText( 0, Column );
			a51i->Dlg->EditSetText(
				a51i->nIdCode,
				Column
			);
			Lview->GetColumnText( 1, Column );
			a51i->Dlg->EditSetText(
				a51i->nIdName,
				Column
			);
			bEnd = true;
			delete Lview;
			delete CurApp;
			EndDialog(hDlg, LOWORD(wParam));
			break;

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

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

			// 検索
			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;
}
  



  呼び出し側

  
	// 商品分類の問合せ参照
	if ( LOWORD(wParam) == IDC_REF51 ) {
		App_51_Interface a51i;
		a51i.nIdCode = IDC_SBUNRUI;
		a51i.nIdName = IDC_SBUNRUINAME;
		a51i.Dlg = Dlg;
		DialogBoxParam(
			hInst,
			(LPCTSTR)IDD_DIALOG_51,
			hDlg,
			(DLGPROC)Dialog_51,
			(LPARAM)&a51i
		);
		Dlg = a51i.Dlg;
	}
  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ