Click here to Skip to main content
15,886,847 members
Articles / Containers / Virtual Machine

An extendable report editor

Rate me:
Please Sign up or sign in to vote.
5.00/5 (11 votes)
3 Sep 2008CPOL3 min read 41K   2K   35  
An extendable report editor. You can simply add your own controls without recompiling the program or writing annoying plug-ins.
#ifndef __COMNCTLS_H
#define __COMNCTLS_H

#include <commctrl.h>
#include "wnd.h"

class CCtrl : public CWnd{
public:
public:
	int EmulateClick();
    CCtrl();
    ~CCtrl();
    int Init();
    int Destroy();
    int InitBasic();
};
/////////////////////////////////
class CButton : public CCtrl{
public:
	virtual int Create();
};
/////////////////////////////////
class CStatic : public CCtrl{
public:
	virtual int Create();
};
/////////////////////////////////
class CGroupBox : public CCtrl{
public:
	virtual int Create();
};
/////////////////////////////////
class CCheckBox : public CCtrl{
public:
	int GetCheck();
	int SetCheck(BOOL flag);
	virtual int Create();
};
/////////////////////////////////
class CRadio : public CCtrl{
public:
	int GetCheck();
	int SetCheck(BOOL flag);
	virtual int Create();
};
/////////////////////////////////
class CScrollBar : public CCtrl{
public:
    int min;
	int max;
	int page_size;
	int cur_pos;
	int line_step;
public:
	int SetPageSize(int proportion);
	int SetDir(BOOL is_vertical);
	int OnScroll(WPARAM wparam,LPARAM lparam);
	int SetLineStep(int line_step);
	int GetPos();
	int SetPos(int pos);
	int SetRange(int min,int max);
	int Init();
	virtual int Create();
};
///////////////////////////////////
class CEditBox : public CCtrl{
public:
	int GetSel(int *start,int *end);
	int SetModifyFlag(BOOL flag);
	int Modified();
	int Putc(char ch);
	int Printf (char * szFormat, ...);
	int Puts(char *str);
	int MoveToEnd();
	int SetReadOnly(BOOL flag);
	int SetMaxText(int max);
	int ReplaceSel(char *buf);
	int SetSel(int nStart,int nEnd);
	int Create();
	int Init();
};
///////////////////////////////////
class CListBox : public CCtrl{
public:
	int AddString(char * str);
	int InsertString(int i,char * str);
	int GetString(int i,char * buf);
	int SetString(int i,char * str);
	int DeleteString(int i);
	int DeleteAllItems();
	DWORD FindString(char * str);
	int GetSelected();
	int SetSelect(int i);
	int SetSelect(char * str);
	int GetMaxItems();
	int Init();
	virtual int Create();
};
///////////////////////////////////
class CCombBox : public CCtrl{
public:
	long FindString(char *str);
	int AddString(char *str);
	int InsertString(int i,char *str);
	int DeleteString(int i);
	int SetString(int i,char *str);
	int DeleteAllItems();
	int GetSelected();
	int GetString(int i,char *str);
	int GetEditText(char *str,int max);
	int SetEditText(char *str);
	int SetSelect(int i);
	int SetSelect(char *str);
	int Init();
	virtual int Create();
};
///////////////////////////////////
class CMenu{
public:
	HMENU hmenu;
	HMENU hpmenu;
	char *name;
	DWORD id;
	HWND hpwnd;
public:
	int EmuPush(HWND hwnd);
	int IsMyCommand(WPARAM wparam);
	int Enable(BOOL flag);
	int IsChecked();
	int CheckItem(BOOL flag);
	int DelItem();
	int SetToWnd(HWND hwnd);
	int AddSeparator();
	int AddItem(CMenu *item);
	int AddMenu(CMenu *menu);
	int Create();
	int SetName(char *name);
    CMenu();
    virtual ~CMenu();
    int Init();
    int Destroy();
    int InitBasic();
};
///////////////////////////////////
class CPopupMenu : public CMenu{ 
public:
	int Show();
	int Show(int x,int y);
	int SetParent(HWND hwnd);
	int Create();
};
///////////////////////////////////
class CStatusBar:public CCtrl{
public:
	int *pos;
	int parts;
public:
	int SetPartText(int i,char *str);
	int OnSize();
	int SetAveragePos();
	int SetPartPos(int i,int pos);
	int RefreshUI();
	int SetParts(int parts);
	int Create();
    CStatusBar();
    virtual ~CStatusBar();
    int Init();
    int Destroy();
    int InitBasic();
};
///////////////////////////////////
class CProgressBar:public CCtrl{
public:
	int min,max;
	int step;
public:
	int SetColor(COLORREF fc,COLORREF bc);
	int SetPos(int pos);
	int GoAStep();
	int SetStep(int step);
	int SetRange(int min,int max);
	int Create();
    CProgressBar();
    virtual ~CProgressBar();
    int Init();
    int Destroy();
    int InitBasic();
};
//////////////////////////////////
class CTreeView : public CCtrl{
public:
    HIMAGELIST hImages;
    HBITMAP hBitmap;
public:
	int CTreeView::GetImageCount();
	int SetItemImg(HTREEITEM htv,int img_index);
	int CreateImageList(DWORD bmp_id,int img_width,int img_height,int color_depth,int img_num,COLORREF mask_color);
	int GetPath(HTREEITEM hitem,char *path,int max);
	HTREEITEM AddRoot(char *str);
	HTREEITEM AddItem(HTREEITEM hparent,char *str);
	int GetItemText(HTREEITEM hitem,char *buf,long max);
	HTREEITEM GetParent(HTREEITEM hitem);
	int GetParentText(HTREEITEM hitem,char *buf,long max);
	int OnSelChange(WPARAM wparam,LPARAM lparam);
	HTREEITEM GetSelectItem(LPARAM lparam);
	HTREEITEM GetSelectItem();
	int SetSelect(HTREEITEM hItem);
	HTREEITEM ItemFromPoint(int x,int y);
	int OnRClick(WPARAM wparam,LPARAM lparam);
	int DeleteItem(HTREEITEM hItem);
	int GetDepth(HTREEITEM hItem);
	HTREEITEM SearchChild(HTREEITEM hParent,char *buf);
	HTREEITEM GetRoot();
	HTREEITEM GetChild(HTREEITEM hParent);
	HTREEITEM GetSibling(HTREEITEM htv);
	int SetItemText(HTREEITEM htv,char *str);
	int IsLeaf(HTREEITEM htv);
	int Expand(HTREEITEM htv,UINT flag);
	int Create();
    CTreeView();
    virtual ~CTreeView();
    int Init();
    int Destroy();
    int InitBasic();
};
//////////////////////////////////
class CTBButton{
public:
	TBBUTTON *tbb;
public:
	int IsMyCommand(WPARAM wparam);
	int SetImgIndex(int index);
	int SetToolTip(char *caption);
	int SetState(BYTE state);
	int SetStyle(BYTE style);
    CTBButton();
    virtual ~CTBButton();
    int Init();
    int Destroy();
    int InitBasic();
};
//////////////////////////////////
class CToolBar:public CCtrl{
public:
    HIMAGELIST hImages;
    HBITMAP hBitmap;
public:	
	int OnSize();
	int AddSeparator();
	int GetButtonByCmd(int cmd,CTBButton *ptbb);
	int OnNotify(WPARAM wparam,LPARAM lparam);
	int AddButton(CTBButton *tbb);
	int CreateImageList(DWORD bmp_id,int img_width,int img_height,int color_depth,int img_num,COLORREF mask_color);
	int SetButtonSize(int cx,int cy);
	int SetAutoSize();
	int Create();
    CToolBar();
    virtual ~CToolBar();
    int Init();
    int Destroy();
    int InitBasic();
};
#endif

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
China China
26 years old, 2 years work experience.

Comments and Discussions