|
// *********************************************************
// デフォルトコンストラクタ
// *********************************************************
LboxListview::LboxListview()
{
LboxListview::Rowid = 0;
LboxListview::hHeader = NULL;
LboxListview::lpSkipColumn = "";
LboxListview::hhkFlg = false;
LboxListview::dwInitFlag = 0;
this->hWnd = NULL;
LboxListview::hCombo = NULL;
LboxListview::hEdit = NULL;
LboxListview::hMenu = NULL;
LboxListview::hFont = NULL;
LboxListview::ColumnType = NULL;
LboxListview::ColumnSize = NULL;
ListView_SetExtendedListViewStyle(
this->hWnd,
LVS_EX_SUBITEMIMAGES
);
LboxListview::Buffer = new LboxString( );
}
// *********************************************************
// 拡張コンストラクタ
// *********************************************************
LboxListview::LboxListview( HWND hTarget )
{
LboxListview::Rowid = 0;
LboxListview::hHeader = NULL;
LboxListview::lpSkipColumn = "";
LboxListview::hhkFlg = false;
LboxListview::dwInitFlag = 0;
LboxListview::ColumnType = NULL;
LboxListview::ColumnSize = NULL;
this->hWnd = hTarget;
LboxListview::hEdit =
LboxCreateEdit( this->hWnd, 50001 );
if ( LboxListview::hEdit != NULL ) {
HFONT hFont;
hFont = (HFONT)SendMessage( this->hWnd, WM_GETFONT, 0, 0 );
SendMessage( LboxListview::hEdit, WM_SETFONT, (WPARAM)hFont, 0 );
LboxMoveWindowTop( LboxListview::hEdit );
}
LboxListview::hCombo =
LboxCreateDropdownListbox( this->hWnd, 50002 );
if ( LboxListview::hCombo != NULL ) {
HFONT hFont;
hFont = (HFONT)SendMessage( this->hWnd, WM_GETFONT, 0, 0 );
SendMessage( LboxListview::hCombo, WM_SETFONT, (WPARAM)hFont, 0 );
LboxMoveWindowTop( LboxListview::hCombo );
}
LboxListview::hMenu = NULL;
LboxListview::hFont = NULL;
ListView_SetExtendedListViewStyle(
this->hWnd,
LVS_EX_SUBITEMIMAGES
);
LboxListview::Buffer = new LboxString( );
LboxListview::hHeader = ListView_GetHeader( this->hWnd );
}
// *********************************************************
// 拡張コンストラクタ2
// *********************************************************
LboxListview::LboxListview( HWND hTarget, DWORD dwFlag )
{
LboxListview::Rowid = 0;
LboxListview::hHeader = NULL;
LboxListview::lpSkipColumn = "";
LboxListview::hhkFlg = false;
LboxListview::dwInitFlag = dwFlag;
LboxListview::ColumnType = NULL;
LboxListview::ColumnSize = NULL;
if ( dwFlag & 0x00000002 ) {
LboxListview::nID = nBaseId;
nBaseId++;
this->hWnd = CreateWindowEx(
0,
WC_LISTVIEW,
"",
WS_CHILD | WS_VISIBLE | WS_BORDER |
LVS_REPORT | LVS_SHOWSELALWAYS,
0, 0, 0, 0,
hTarget,
(HMENU)(LboxListview::nID),
LboxGetInstance( hTarget ),
NULL
);
}
else {
this->hWnd = hTarget;
}
LboxListview::hCombo =
LboxCreateDropdownListbox( this->hWnd, 50002 );
if ( LboxListview::hCombo != NULL ) {
HFONT hFont;
hFont = (HFONT)SendMessage( this->hWnd, WM_GETFONT, 0, 0 );
SendMessage( LboxListview::hCombo, WM_SETFONT, (WPARAM)hFont, 0 );
LboxMoveWindowTop( LboxListview::hCombo );
}
LboxListview::hEdit =
LboxCreateEdit( this->hWnd, 50001 );
if ( LboxListview::hEdit != NULL ) {
HFONT hFont;
hFont = (HFONT)SendMessage( this->hWnd, WM_GETFONT, 0, 0 );
SendMessage( LboxListview::hEdit, WM_SETFONT, (WPARAM)hFont, 0 );
LboxMoveWindowTop( LboxListview::hEdit );
}
if ( dwFlag & 0x00000001 ) {
if ( hhk == NULL ) {
LboxListview::hhkFlg = true;
hhk = SetWindowsHookEx(
WH_CALLWNDPROCRET,
CallWndRetProc,
NULL,
GetCurrentThreadId()
);
hhkPost = SetWindowsHookEx(
WH_GETMESSAGE,
GetMsgProc,
NULL,
GetCurrentThreadId()
);
}
}
LboxListview::hMenu = NULL;
LboxListview::hFont = NULL;
ListView_SetExtendedListViewStyle(
this->hWnd,
LVS_EX_SUBITEMIMAGES
);
LboxListview::Buffer = new LboxString( );
LboxListview::hHeader = ListView_GetHeader( this->hWnd );
}
// *********************************************************
// デストラクタ
// *********************************************************
LboxListview::~LboxListview()
{
if ( LboxListview::hEdit != NULL ) {
DestroyWindow( LboxListview::hEdit );
LboxListview::hEdit = NULL;
}
if ( LboxListview::hCombo != NULL ) {
DestroyWindow( LboxListview::hCombo );
LboxListview::hCombo = NULL;
}
if ( LboxListview::hhkFlg ) {
if ( hhk != NULL ) {
UnhookWindowsHookEx( hhk );
hhk = NULL;
}
if ( hhkPost != NULL ) {
UnhookWindowsHookEx( hhkPost );
hhkPost = NULL;
}
}
if ( LboxListview::hMenu != NULL ) {
DestroyMenu( LboxListview::hMenu );
LboxListview::hMenu = NULL;
}
if ( LboxListview::hFont != NULL ) {
DeleteObject( LboxListview::hFont );
LboxListview::hFont = NULL;
}
if ( LboxListview::dwInitFlag & 0x00000002 ) {
if ( this->hWnd != NULL ) {
DestroyWindow( this->hWnd );
this->hWnd = NULL;
}
}
if ( LboxListview::ColumnType != NULL ) {
delete LboxListview::ColumnType;
}
if ( LboxListview::ColumnSize != NULL ) {
delete LboxListview::ColumnSize;
}
delete LboxListview::Buffer;
}
| |