Click to See Complete Forum and Search --> : Active X


RajeswaraRao
April 29th, 1999, 06:18 AM
Hi,
I wanted to develop an Activex which has similar GUI as windows explorer(TreeView and ListView). I am not very sure whether I can show such GUI in a ActiveX. Any help with small code snippet will be of great help.

Thanking you,
RajeswaraRao

carrot
May 1st, 1999, 04:06 AM
you can make a ActiveX control project, for example TestTree. In this project,
a new class named CTestTree derived from CTreeCtrl is added. you can add the follwing code:

CTestTreeCtrl::CTestTreeCtrl()
{
InitializeIIDs(&IID_DTestTree, &IID_DTestTreeEvents);

// TODO: Initialize your control's instance data here.
ptree=new CTestTree;
}


/////////////////////////////////////////////////////////////////////////////
// CTestTreeCtrl::~CTestTreeCtrl - Destructor

CTestTreeCtrl::~CTestTreeCtrl()
{

// TODO: Cleanup your control's instance data here.
delete ptree;
}


/////////////////////////////////////////////////////////////////////////////
// CTestTreeCtrl::OnDraw - Drawing function

void CTestTreeCtrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
// TODO: Replace the following code with your own drawing code.
//pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
//pdc->Ellipse(rcBounds);
ptree->MoveWindow(rcBounds);
}

int CTestTreeCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: Add your specialized creation code here
CRect rc;
GetClientRect(&rc);
ptree->Create(WS_CHILD|WS_VISIBLE,rc,this,WM_USER);

TV_INSERTSTRUCT TreeCtrlItem;

TreeCtrlItem.hParent = TVI_ROOT;
TreeCtrlItem.hInsertAfter = TVI_LAST;
TreeCtrlItem.item.mask = TVIF_TEXT | TVIF_PARAM;
TreeCtrlItem.item.pszText = "Fire";
TreeCtrlItem.item.lParam = 0;
HTREEITEM hTreeItem1 = ptree->InsertItem(&TreeCtrlItem);

TreeCtrlItem.hParent = hTreeItem1;
TreeCtrlItem.item.pszText = "Decay";
TreeCtrlItem.item.lParam = 1;
ptree->InsertItem(&TreeCtrlItem);

TreeCtrlItem.item.pszText = "Flammability";
TreeCtrlItem.item.lParam = 2;
ptree->InsertItem(&TreeCtrlItem);

TreeCtrlItem.item.pszText = "Maximum Heat";
TreeCtrlItem.item.lParam = 3;
ptree->InsertItem(&TreeCtrlItem);

TreeCtrlItem.item.pszText = "Spread Rate";
TreeCtrlItem.item.lParam = 4;
ptree->InsertItem(&TreeCtrlItem);

TreeCtrlItem.item.pszText = "Size";
TreeCtrlItem.item.lParam = 5;
ptree->InsertItem(&TreeCtrlItem);

TreeCtrlItem.hParent = TVI_ROOT;
TreeCtrlItem.item.pszText = "Render";
TreeCtrlItem.item.lParam = 0;
HTREEITEM hTreeItem2 = ptree->InsertItem(&TreeCtrlItem);

TreeCtrlItem.hParent = hTreeItem2;
TreeCtrlItem.item.pszText = "Smoothness";
TreeCtrlItem.item.lParam = 6;
ptree->InsertItem(&TreeCtrlItem);

TreeCtrlItem.item.pszText = "Distribution";
TreeCtrlItem.item.lParam = 7;
ptree->InsertItem(&TreeCtrlItem);

TreeCtrlItem.item.pszText = "Chaos";
TreeCtrlItem.item.lParam = 8;
ptree->InsertItem(&TreeCtrlItem);

ptree->Expand(hTreeItem1,TVE_EXPAND);
ptree->Expand(hTreeItem2,TVE_EXPAND);

return 0;
}

I hope those can help you.

Please we can improve our program ability together.

Olix
June 29th, 1999, 06:39 AM
I see you are working with ActiveX and Excel - databases.
Did you ever done a ActiveX that uses CDaoRecordset (or something with DAO).
If you do, please help me !!!