class LboxDTPicker : public LboxWintool

  コンストラクタ



ダイアログ上のコントロールの一つとして使用する事を想定しています。その為、位置指定を簡単にする為にデザイナ上ではタ゜ミーのエディットコントロールを貼り付けて、そのウインドウハンドルを渡すようにしています。
( エディットコントロールのタブオーダーが使用されます )

bNoData は、true にすると、日付の横にチェックボックスが表示され、通常はチェックされています。
このチェックを外すと、日付が灰色になって変更不能になって未入力扱いにする事ができます。入力可能にするには、もう一度チェックするかカレンダーを開くと元に戻ります。

必須入力の日付項目であれば、bNoData は false にします。

  
Dtp = new LboxDTPicker(
	hDlg,
	GetDlgItem( hDlg, IDC_EDIT1 ),
	true
);
  

  
// *********************************************************
// 拡張コンストラクタ
// *********************************************************
LboxDTPicker::LboxDTPicker( HWND hOwner, HWND hBase, BOOL bNoData )
{
	BaseEdit = new LboxEdit( hBase );
	this->bNoData = bNoData;
		
	BaseEdit->Hide( );
	BaseEdit->Disable();

	RECT rt;
	POINT pt;
	GetWindowRect( hBase, &rt );
	pt.x = rt.left;
	pt.y = rt.top;
	ScreenToClient( hOwner, &pt );

	int nW,nH;
	nW = BaseEdit->Width();
	nH = BaseEdit->Height();

	if ( bNoData ) {
		this->hWnd = 
			CreateWindowEx(
				0,
				DATETIMEPICK_CLASS,
				"DateTime",
				WS_BORDER |
				WS_CHILD |
				WS_VISIBLE | WS_TABSTOP |
				DTS_SHOWNONE,
				pt.x, pt.y, nW, nH,
				hOwner,
				NULL,
				LboxGetInstance( hOwner ),
				NULL
			);
	}
	else {
		this->hWnd = 
			CreateWindowEx(
				0,
				DATETIMEPICK_CLASS,
				"DateTime",
				WS_BORDER |
				WS_CHILD |
				WS_VISIBLE | WS_TABSTOP,
				pt.x, pt.y, nW, nH,
				hOwner,
				NULL,
				LboxGetInstance( hOwner ),
				NULL
			);
	}

	if ( this->hWnd != NULL ) {
		SetWindowPos(
			this->hWnd,
			hBase,
			0,0,0,0,
			SWP_NOMOVE | SWP_NOSIZE
		);
	}

}

LboxDTPicker::LboxDTPicker()
{

}

LboxDTPicker::~LboxDTPicker()
{
	delete BaseEdit;
}
  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ