CWindowDelegate代理窗口的绘制工作,实现窗口的显示方式,显示内容,UC控件的编辑和现实功能。CWindowDelegate具有设计模式和运行模式,两种模式不同,显示的内容有些差异。
CDelegate类中的常量
名字 | 说明 |
---|---|
RT_FLUSH | 刷新(目前与RT_REALIZE效果一样) |
RT_REALIZE | 实现并刷新 |
RT_UPDATE | 更新并实现 |
RT_REDRAW | 重绘(将会清除以前的绘制) |
RT_PURE | 仅绘制与类本身有关的绘制任务,不进行清除或实现 |
名字 | 说明 |
---|---|
DM_DESIGN | 设计模式 |
DM_RUNTIME | 运行模式 |
名字 | 说明 |
---|---|
SS_NONE | 无选择 |
SS_SINGLE | 单选择 |
SS_MULTIPLE | 多选择(全部无效) |
名字 | 说明 |
---|---|
HP_NOTHING | 无 |
HP_ROTATER | 旋转点 |
HP_GRABBER | 抓取点 |
HP_MIDDLE | 中间点(CC对象区域的任何一点) |
HP_EXTENDER | 扩展点 |
名字 | 说明 |
---|---|
TT_NONE | 无 |
TT_RESIZE | 更改大小 |
TT_MOVE | 移动 |
TT_ROTATE | 旋转 |
名字 | 说明 |
---|---|
LA_LEFTTOP | 窗口左上角 |
LA_RIGHTTOP | 窗口右上角 |
LA_LEFTBOTTOM | 窗口左下角 |
LA_RIGHTBOTTOM | 窗口右下角 |
名字 | 说明 |
---|---|
VM_DEFAULT | 默认模式 |
VM_CENTER | 居中显示 |
VM_STRETCH | 拉伸显示 |
VM_STRETCH_KR | 等比拉伸显示 |
名字 | 说明 |
---|---|
BS_CHECK | 方格 |
BS_WHITE | 白色 |
BS_BLACK | 黑色 |
BS_RED | 红色 |
名字 | 说明 |
---|---|
FT_NONE | 不翻转 |
FT_BOTH | 垂直和水平方向都翻转 |
FT_HORI | 水平方向都翻转 |
FT_VERT | 垂直方向都翻转 |
声明:virtual BOOL Initialize(HWND hWnd, RV_CONTEXT_TYPE canvasType=RV_CT_GENERIC, int canvasWidth=-1, int canvasHeight=-1 );
描述:初始化指定窗口的图像绘制上下文。
参数:1、HWND hWnd – 窗口句柄
2、RV_CONTEXT_TYPE canvasType – 上下文类型
3、 int canvasWidth – 画布宽度
4、 int canvasHeight – 画布高度返回:TRUE 或FALSE
声明: virtual void Finalize();
描述 :释放窗口的图像绘制上下文。
参数:无
返回值:无
声明:void SetViewMode(CWindowDelegate::VIEW_MODE mode, BOOL bRefresh=FALSE)
描述:设置窗口视图的显示模式。
参数:1、CWindowDelegate::VIEW_MODE mode – 显示模式
2、BOOL bRefresh – 是否进行刷新
返回值:无
声明:CWindowDelegate::VIEW_MODE GetViewMode();
描述:获取窗口视图的显示模式。
参数:无
返回值:显示模式
备注:
声明:void SetBackgroundStyle(CWindowDelegate::BACKGOURND_STYLE style, BOOL bRefresh=FALSE);
描述 :设置背景样式
参数:1、CWindowDelegate::BACKGOURND_STYLE style – 背景样式
2、BOOL bRefresh – 是否进行刷新
返回值: 无
备注:
声明: CWindowDelegate::BACKGOURND_STYLE GetBackgroundStyle( );
描述 获取背景样式。
参数:无
返回值: 背景式样
备注:
声明:void SetBlankColor(GRgb color, BOOL bRefresh=FALSE);
描述 :设置窗口空白区的颜色。
参数:1、GRgb color – 颜色
2、BOOL bRefresh – 是否进行刷新
返回值: 无
备注:当画布的尺寸小于窗口大小时,窗口空白区的颜色与画布的颜色可能不一样。这个函数就是设置窗口画布区的颜色
描述: 获取窗口空白区的颜色。
参数:无
返回值:空白区颜色
备注:
声明: void SetRvbLogoVisible(BOOL flag, BOOL bRefresh=FALSE);
描述 设置RVB标识是否可见。
参数:1、BOOL flag– TRUE 或者FALSE
2、BOOL bRefresh – 是否进行刷新
返回值: 无备注:
声明:BOOL IsRvbLogoVisible();
描述 判断RVB标识是否可见。
参数:无
返回值: TRUE或者FALSE
备注:
声明: void SetRvbLogoAlignment(CWindowDelegate::LOGO_ALIGN alignment, BOOL bRefresh=FALSE);
描述:设置RVB标识显示位置。
参数:1、CWindowDelegate::LOGO_ALIGN alignment– 显示位置
2、BOOL bRefresh – 是否进行刷新返回值:无
备注:
声明: CWindowDelegate::LOGO_ALIGN GetRvbLogoAlignment();
描述:获取RVB标识显示位置。
参数:无
返回值:显示位置
备注:
声明:void GetViewScale(float* pScaleX, float* pScaleY);
描述:获取窗口的显示比例。
参数:1、float* pScaleX – 水平方向的比例指针,输出。
2、float* pScaleY –垂直方向的比例指针,输出。
返回值: 无
备注:
声明: void SetViewScale(float scaleX, float scaleY);
描述:设置窗口的显示比例。
参数:1、float scaleX,– 水平方向的比例。
2、float scaleY –垂直方向的比例。
返回值: 无
备注:
声明: GRect GetDisplayRect();
描述:获取窗口的显示矩形。
参数:无
返回值:矩形
备注:该矩形为窗口的大小
描述:获取窗口的显示的画布矩形。
参数:无
返回值:矩形
备注:该函数返回的矩形为在窗口里面画布矩形,小于等于窗口矩形。
声明:void AddUC(CUCObj* pObj);
描述:添加一个UC对象到窗口。
参数:CUCObj* pObj – 对象指针返回值: 矩形
备注: 当将一个对象添加到Window Delegate以后,该对象会被显示出来,在设计状态下,可以被选择,改变大小,拖动等。
声明:CUCObj* GetUCAt( int index, BOOL bSelOnly=FALSE);
描述:获取窗口的里面指定索引的UC对象。
参数:1、int index – 索引2、BOOL bSelOnly – 是否仅为选中的UC对象。(注意:目前版本的RVB里面,该参数意义)
返回值:UC对象指针
备注:
声明:int GetUCCount( BOOL bSelOnly=FALSE);
描述:获取窗口的里面UC对象的数量。
参数:BOOL bSelOnly – 是否仅为选中的UC对象。(注意:目前版本的RVB里面,该参数意义)返回值:UC对象数量
备注:
声明:void RemoveAll(FN_DESTOY_OBJ fnDestroyObj=NULL);
描述:将窗口中所有的UC对象移除。
参数:FN_DESTOY_OBJ fnDestroyObj – 对象释放函数。
返回值:无
备注:如果对象释放函数不为空,将同时释放所有的被移除的对象。声明:void RemoveUC(CUCObj* pObj, FN_DESTOY_OBJ fnDestroyObj=NULL);
void RemoveUC( const char* strName, FN_DESTOY_OBJ fnDestroyObj=NULL);
描述:移除窗口指定的单个UC对象。对象可以按照指针,ID,名字,索引等方式进行指定。
参数:1、CUCObj* pObj – UC对象指针
2、const char* strName – UC对象名字
3、int index, - 索引位置
4、UINT id – 对象ID5、FN_DESTOY_OBJ fnDestroyObj – 对象释放函数。
返回值:无
备注:如果对象释放函数不为空,将同时释放被移除的对象。
声明:void LockUC( int index, BOOL flag);
void LockUC(CUCObj* pObj, BOOL flag);
void LockUC( const char* name, BOOL flag);void LockUC( UINT id, BOOL flag);
描述:锁定窗口指定的单个UC对象,被锁定的对象将不能被编辑。对象可以按照指针,ID,名字,索引等方式进行指定。
参数:1、CUCObj* pObj – UC对象指针2、const char* strName – UC对象名字
3、int index, - 索引位置
4、UINT id – 对象ID
5、FN_DESTOY_OBJ fnDestroyObj – 对象释放函数。
返回值:无
备注:如果对象释放函数不为空,将同时释放被移除的对象。
声明:void DisableUC( int index, BOOL flag);
void DisableUC(CUCObj* pObj, BOOL flag);void DisableUC( const char* name, BOOL flag);
void DisableUC( UINT id, BOOL flag);
描述:禁止窗口指定的单个UC对象。对象可以按照指针,ID,名字,索引等方式进行指定。
参数:1、CUCObj* pObj – UC对象指针
2、const char* strName – UC对象名字
3、int index, - 索引位置
4、UINT id – 对象ID
5、FN_DESTOY_OBJ fnDestroyObj – 对象释放函数。返回值:无
备注:如果对象释放函数不为空,将同时释放被移除的对象。
声明:void HideUC( int index, BOOL flag);
void HideUC(CUCObj* pObj, BOOL flag); void HideUC( const char* name, BOOL flag); void HideUC( UINT id, BOOL flag); 描述:隐藏窗口指定的单个UC对象。对象可以按照指针,ID,名字,索引等方式进行指定。参数:1、CUCObj* pObj – UC对象指针
2、const char* strName – UC对象名字
3、int index, - 索引位置
4、UINT id – 对象ID
5、FN_DESTOY_OBJ fnDestroyObj – 对象释放函数。
返回值:无
备注:如果对象释放函数不为空,将同时释放被移除的对象。
声明:void SelectUC( int index, int flag);
void SelectUC(CUCObj* pObj, int flag); void SelectUC( const char* name, int flag); void SelectUC( UINT id, int flag); 描述:选择窗口指定的单个UC对象(目前窗口仅支持单选)。对象可以按照指针,ID,名字,索引等方式进行指定。参数:1、CUCObj* pObj – UC对象指针
2、const char* strName – UC对象名字
3、int index, - 索引位置
4、UINT id – 对象ID
5、FN_DESTOY_OBJ fnDestroyObj – 对象释放函数。返回值: 无
备注:如果对象释放函数不为空,将同时释放被移除的对象。
声明:virtual void Refresh(REFRESH_TYPE type);
描述:将窗口的显示区域进行重画。
参数:REFRESH_TYPE type – 重绘类型
返回值: 矩形
备注:该函数可以被其他继承CWindowDelegate的类重载,实现用户自定义的绘制任务。声明:void ClearCanvas(BOOL bRefresh=FALSE);
描述:清除当前的绘制的笔画。
参数:BOOL bRefresh – 是否进行刷新
返回值:无
备注: 窗口绘制的时候实际上是创建笔画对象。在该函数被调用以后,应用程序必须调用Refresh刷新,调用类型 为RT_REDRAW,如果没有实际的绘制对象,也可以进行RT_REALIZE类型的刷新。否则会出现无可预料的错误。
描述:按照拉伸的方式绘制图像,即将图像绘制到整个画布。
参数:1、const RvImage image – 图像对象
2、BOOL bRefresh – 是否进行刷新
返回值:无
备注: 该函数不会产生笔画句柄。多次调用的时候,如果没有进行画布清除,可能产生内存泄漏。
描述:绘制一个UC对象。
参数:1、CUCObj* pObj – UC对象
2、BOOL bRefresh – 是否进行刷新
返回值:无
备注:该函数不要轻易使用,在同一个UC对象在别的CWindowDelegate中绘制之前,必须首先清除这个函数的绘制。否则会产生不可预料的效果。
声明:BOOL SaveCanvas(RvImage image);
描述:将窗口中的绘制结果保存到一个数字图像对象。
参数:RvImage image – 数字图像,保存画布绘制结果返回值: TRUE或者FALSE
备注: 保存画布结果的图像必须为RIT_RGB或RIT_RGBA格式,图像的大小会根据画布大小进行调整。
声明:int GetCanvasWidth();
描述:获得画布的宽度 。
参数:无
返回值:宽度
备注:
声明:int GetCanvasHeight();
描述:获得画布的高度 。参数:无
返回值:高度
备注:
声明:FLIP_TYPE GetFlipType();
描述:获得画布的内置帧图像的翻转类型。
参数:无
返回值:翻转类型
备注: 内置帧图像由FeedFrame获得。声明:void SetFlipType(FLIP_TYPE type);
描述:获得画布的内置帧图像的翻转类型。
参数:FLIP_TYPE type – 翻转类型
返回值:无
备注:
声明:BOOL IsEditionLocked();
描述:判断画布当前的编辑状态是否为锁定状态。
参数:无
返回值:TRUE 或FALSE
备注:
声明:void SetEditionState(BOOL bLock);
描述:设置编辑状态。
参数:BOOL bLock – 是否锁住
返回值:无
备注:
声明:void FeedFrame(const RvImage image, BOOL bRefresh=FALSE);
描述:供应一帧图象给画布。。
参数:1、const RvImage image- 数字图象
2、BOOL bRefresh – 是否进行刷新
返回值:无
备注: 如果图象对象的格式与画布当前的格式不一致,将无效。
声明:const RvImage GetCurFrame() ;
描述:获得当前帧图象。
参数:无
返回值:数字图象
备注:如果当前没有供应图象给画布,将返回NULL。
声明:void SetSightFormat(RV_IMAGE_TYPE type, int width, int height );
描述:获得当前帧图象。
参数:1、RV_IMAGE_TYPE type – 数字图象类型
2、int width –图象宽度3、int height – 图象高度
返回值:无
备注:
声明:virtual void SetDesignMode(CDelegate::DESIGN_MODE mode, BOOL bRefresh=FALSE) ;
描述:设置当前工作模式。
参数:1、CDelegate::DESIGN_MODE mode – 工作模式2、BOOL bRefresh – 是否需要刷新
返回值:无
备注:
声明:CDelegate::DESIGN_MODE GetDesignMode();
描述:获得当前工作模式。
参数:无返回值:工作模式
备注:
声明:GSize GetScrollBarRange();
描述:获得滚动条支持的行程。
参数:无
返回值:行程备注:当画布显示的时候大于窗口大小时,水平方向或垂直方向可能会需要进行滚动显示
声明:void SetScrollBarPos(int pos, BOOL bVert);
描述:设置滚动条支持的行程。
参数:1、int pos – 位置
2、BOOL bVert – 是否为垂直滚动条。
返回值:无备注:
声明:virtual BOOL EventProc(RV_HANDLE hObj, UINT uEvent, WPARAM wParam, LPARAM lParam){ return FALSE;};
描述: 内部事件处理。
参数:无
返回值:
备注:Window Delegate在有些时候会激发一些内部事件,这些事件一般由WINDOWS消息激发,应用程序通过重载该函数进行功能扩展。
QQ技术交流群:
微信技术交流群:
Marklab工作室
研发中心: 广东省东莞市大岭山镇元岭小区翠云街1巷16号
商务中心: 广东省东莞市松湖智谷B6栋225b
Marklab工作室 版权所有 粤ICP备13082990号-2 友情链接 hao123 绿盟 搜狗 站长之家 太平洋下载 天极下载 淘宝店 软云动力
赞助和协作单位 广东省科学院自动化研究所 深圳市东百胜技术有限公司