class LboxCombobox : public LboxWintool

  コンストラクタ



コンボボックスと言っても、アプリケーションで使用するのは殆どの場合ドロップダウンリストスタイルです。本オブジェクトではそれを使用しています。

また、通常コンボボックスは表示部分であるテキストの他に内部データを必要とします。その為、リストボックスを内部に作成してペアで使用するようにしています。

一つ目のコンストラクタは既存のコンボボックスを使用するタイプで、これが通常となります。ダイアログ上で貼り付けて GetDlgItem 関数でハンドルを取得してコンストラククタに渡します。

ドロップダウンリストの初期の大きさは、ChangeWindowSize(ウインドウツール) メソッドで設定します。

  
// *********************************************************
// 拡張コンストラクタ
// *********************************************************
LboxCombobox::LboxCombobox( HWND hTarget )
{
	this->hWnd = hTarget;
	List = new LboxListbox( GetParent( hTarget ), 0 );
	LboxCombobox::bCreate = false;
}
LboxCombobox::LboxCombobox( HWND hOwner, int nID )
{
	this->hWnd = CreateWindow(
		"combobox",
		NULL,
		WS_CHILD | CBS_DROPDOWNLIST,
		0,0,0,0,
		hOwner,
		(HMENU)nID,
		LboxGetInstance( hOwner ),
		NULL
	);

	List = new LboxListbox( hOwner, 0 );
	LboxCombobox::bCreate = true;
}

// *********************************************************
// デフォルトコンストラクタ
// *********************************************************
LboxCombobox::LboxCombobox()
{
	LboxCombobox::bCreate = false;
	List = NULL;
}

// *********************************************************
// デストラクタ
// *********************************************************
LboxCombobox::~LboxCombobox()
{
	delete this->List;
	if ( LboxCombobox::bCreate ) {
		if ( this->hWnd != NULL ) {
			DestroyWindow( this->hWnd );
			this->hWnd = NULL;
		}
	}
}
  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ