开发工具:
文件大小: 133kb
下载次数: 0
上传时间: 2007-08-22
详细说明: 下午发的那个RRGrid有个地方的测试没有取消,会造成内存泄漏,再发一个
顺便把头文件发出来
#define RR_GRIDCTRL_CLASS "RRGridCtrl"
//############################定义Grid的风格
//GS_VISIBLE/GS_NO_COLHEAD/GS_NO_ROWHEAD创建时起作用
#d efine GS_VISIBLE 0x00000001L
#define GS_NO_COLHEAD 0x00000002L
#define GS_NO_ROWHEAD 0x00000004L
#define GS_READONLY 0x00001000L
//是否调整Grid高度,以显示完整的行高
#define GS_GRIDHIGH_NOADJUST 0x00002000L
//选择行是否可见(选择行高亮--可见)
#define GS_SELROW_INVISIBLE 0x00004000L
//是否使用Insert键插入行
#define GS_CANCEL_INSKEY 0x00010000L
//是否使用Delete键删除行
#define GS_CANCEL_DELKEY 0x00020000L
//是否在最后行被选择时按Enter键增加行
#define GS_CANCEL_ENTER_INSERT 0x00040000L
//是否拓展最后列到右边界
#define GS_LASTCOL_NOEXTEND 0x00100000L
//列宽是否可变
#define GS_COLUMN_NORESIZE 0x00200000L
//列头(第0行)是否显示ABCDE标识
#define GS_COLHEAD_CUSTOM 0x00400000L
//行头(第0列)是否显示12345标识
#define GS_ROWHEAD_CUSTOM 0x00800000L
//####################通知码(给父窗口发通知消息的通知码)
//进入编辑后发通知
#define GN_ENTRY_CELL_EDITBOX 0x0001
//退出编辑前发通知
//GridNotify_T返回值为非0,将不会退出本单元的编辑
#define GN_EXIT_CELL_EDITBOX 0x0002
//在行改变之前发出通知,如果GridNotify_T返回非0,将不会改变行
//如果是在编辑中,则不能进入新行编辑
#define GN_ROW_CHANGED 0x0003
//Grid由外部得到焦点
#define GN_GET_FOCUS 0x0004
//焦点从Grid里移到外部
#define GN_LOST_FOCUS 0x0005
//增加新行前发通知给父窗口
//GridNotify_T返回值为非0,将不完成本次操作
#define GN_INSERT_ROW 0x0006
//删除行前发通知给父窗口
//GridNotify_T返回值为非0,将不完成本次操作
#define GN_DELETE_ROW 0x0007
//单击单元
//GridNotify_T返回值为非0,将不会进行默认操作
//默认操作:在编辑中,单击另一数据单元,将转到另一单元编辑;
//在编辑中,单击发生在数据单元外,将退出编辑
//在非编辑中,单击将使该行变成选择状态
#define GN_CLICK_CELL 0x0008
//双击单元
//GridNotify_T返回值为非0,将不会进行默认操作
//默认:非编辑时,在数据单元上双击将进入该单元编辑
#define GN_DCLICK_CELL 0x0009
//########################################自定义消息
#define WM_GRID_USER_INNER WM_USER
#define WM_GRID_USER_OUTER WM_USER+20
//WM_GRID_USER_OUTER+1 -- WM_GRID_USER_OUTER+19内部使用
//Grid往父窗口发的通知消息
//wParam --通知码/控件id组成
//lParam --与父窗口进行信息交流的结构指针(GridNotify_T*)
#define GM_GRID_NOTIFY WM_GRID_USER_OUTER+1
//wParam -- TRUE -- 只读;FALSE --可编辑;lParam -- 未用
#define GM_GRID_SET_READONLY WM_GRID_USER_OUTER + 2
//设置列宽是否允许变化wParam: 0--不允许 1--允许;lParam:未用
#define GM_GRID_ALLOW_COL_RESIZE WM_GRID_USER_OUTER + 3
//清除Grid所有单元文本
//wParam /lParam -- 未用
#define GM_GRID_CLEAR_TEXT WM_GRID_USER_OUTER + 4
//返回值不包括第0行
#define GM_GRID_GET_ROWS WM_GRID_USER_OUTER + 5
//返回值不包括第0列
#define GM_GRID_GET_COLS WM_GRID_USER_OUTER + 6
//GM_GRID_SET_CELL_COUNT (重置Grid行列数)
//重置单元行列数,Grid现有数据将丢失
//wParam -- 行数 lParam -- 列数(这两个数值不包括0行/0列)
#define GM_GRID_SET_CELL_COUNT WM_GRID_USER_OUTER +7
//增加新行wParam -- 新行号(不能插入第0行)
#define GM_GRID_INSERT_ROW WM_GRID_USER_OUTER+8
//删除行(不能删除第0行,要删除/显示第0行/第0列,可将其相应宽高置为0)
//(要删除标题行可将标题文本重置为"\0")
#define GM_GRID_DELETE_ROW WM_GRID_USER_OUTER+9
#define GM_GRID_GET_STYLE WM_GRID_USER_OUTER+10
//设置GRID 风格,wParam -- 风格
#define GM_GRID_SET_STYLE WM_GRID_USER_OUTER+11
//进入指定单元编辑
//慎用,避免死循环(系统本身已提供了一套编辑/退出编辑机制)
//若在GN_CLICK_CELL/GN_DCLICK_CELL通知响应中取消了默认操作,可以尝试使用
#define GM_GRID_ENTRY_EDITBOX WM_GRID_USER_OUTER+12
//退出单元编辑
//慎用,避免死循环(系统本身已提供了一套编辑/退出编辑机制)
//若在GN_CLICK_CELL/GN_DCLICK_CELL通知响应中取消了默认操作,可以尝试使用
#define GM_GRID_EXIT_EDITBOX WM_GRID_USER_OUTER+13
//wParam -- 单元(GridCell_T类型指针) ;lParam --文本字符串
#define GM_SET_CELL_TEXT WM_GRID_USER_OUTER + 21 //或RR_GridCtrl_SetCellText
//wParam -- 单元(GridCell_T类型指针) ;
//lParam --缓存区,为避免数据溢出,需先调用GM_GET_CELL_TEXT_LEN得到数据长度以设置缓存区
#define GM_GET_CELL_TEXT WM_GRID_USER_OUTER + 22 //或RR_GridCtrl_GetCellText
//发送GM_GET_CELL_TEXT之前调用,得到数据长度来设置缓冲区
//缓存区最小大小需在该消息返回值基础上+1('\0')
//wParam -- GridCell_T类型指针;lParam -- 未用
#define GM_GET_CELL_TEXT_LEN WM_GRID_USER_OUTER+23
//wParam --列号(从0开始,0--对应第0列)
#define GM_GET_COL_WIDTH WM_GRID_USER_OUTER + 24
//返回行高:wParam/lParam 未用
#define GM_GET_ROW_HEIGHT WM_GRID_USER_OUTER + 25
//返回第0行高度:wParam/lParam 未用
#define GM_GET_HEADERROW_HEIGHT WM_GRID_USER_OUTER + 26
//返回当前选择的行号:wParam/lParam 未用
#define GM_GET_SELECT_ROW WM_GRID_USER_OUTER + 27
//wParam --新高度(如果<=0,则没有第0行)
#define GM_SET_HEADER_ROW_HEIGHT WM_GRID_USER_OUTER + 28
//wParam --新高度
#define GM_SET_ROW_HEIGHT WM_GRID_USER_OUTER + 29
//wParam -- 列号lParam 新宽度
#define GM_SET_COL_WIDTH WM_GRID_USER_OUTER + 30
//得到当前编辑状态:返回TRUE -- 正在编辑;FALSE --非编辑状态;
//wParam :未使用
//lParam : GridCell_T指针,返回当前正在编辑的单元
#define GM_GET_EDIT_STATUS WM_GRID_USER_OUTER+31
//设置栅格线颜色wParam -- RGB值(COLORREF)
#define GM_SET_GRID_LINE_COLOR WM_GRID_USER_OUTER + 32
//设置选择行在Grid没有焦点时前景色和背景色
//wParam -- 前景色,lParam -- 背景色
#define GM_SET_NOFOCUS_SELLINE_COLOR WM_GRID_USER_OUTER + 33
//设置选择行在Grid有焦点时前景色和背景色
#define GM_SET_FOCUS_SELLINE_COLOR WM_GRID_USER_OUTER + 34
//设置当Grid只读时的前景色和背景色
#define GM_SET_READONLY_COLOR WM_GRID_USER_OUTER + 35
//设置Grid背景色和前景色
#define GM_SET_GRID_COLOR WM_GRID_USER_OUTER + 36
#define GM_SET_TITLE_FONT WM_GRID_USER_OUTER + 37
#define GM_SET_HEADING_FONT WM_GRID_USER_OUTER + 38
#define GM_SET_BODY_FONT WM_GRID_USER_OUTER + 39
//得到GRID修改标志
//返回值0 --未被修改,非0--被修改
#define GM_GET_GRID_MODIFY WM_GRID_USER_OUTER + 40
//设置GRID内容修改标志:lParam --值
#define GM_SET_GRID_MODIFY WM_GRID_USER_OUTER + 41
//得到行修改标志:wParam --行号
//可以在GN_ROW_CHANGED通知中获得该标志
#define GM_GET_ROW_MODIFY WM_GRID_USER_OUTER + 42
//设置行修改标志:wParam--行号;lParam --值
#define GM_SET_ROW_MODIFY WM_GRID_USER_OUTER + 43
//得到单元修改标志:wParam -- GridCell_T指针
//退出编辑之后该标志是无效的
//可以在GN_EXIT_CELL_EDITBOX通知中获得该标志
#define GM_GET_CELL_MODIFY WM_GRID_USER_OUTER + 44
//设置单元修改标志 :wParam -- GridCell_T指针;lParam --值
#define GM_SET_CELL_MODIFY WM_GRID_USER_OUTER + 45
typedef struct _tagGridCell
{
int row;
int col;
}GridCell_T;
typedef struct _tagGridNotifyStruct
{
HWND hwndFrom;//Window handle to the control sending a message
UINT idFrom;//Identifier of the control sending a message.
UINT code;//Notification code
LPARAM param;
/*父窗口消息响应中的返回值(用这个变量返回值比直接
用SendMessage返回值可靠,检测到该值未被改变,这可能是
父窗口没有响应该消息或消息响应有意保持Grid后续的默
认处理,但消息返回后Grid都可以放心地按默认处理)*/
int retVal;
}GridNotify_T;
extern "C"_declspec(dllimport)
BOOL RR_GridCtrl_Register(HINSTANCE);
extern "C"_declspec(dllimport)
BOOL RR_GridCtrl_Register(HINSTANCE);
extern "C"_declspec(dllimport)
void RR_GridCtrl_SetCell(GridCell_T *cell,int row, int col);
//比较两个单元,行列号相等返回TRUE,否则返回FALSE
extern "C"_declspec(dllimport)
BOOL RR_GridCtrl_CmpCell(const GridCell_T *pCell1,const GridCell_T *pCell2);
extern "C"_declspec(dllimport)
BOOL RR_GridCtrl_GetCellText(HWND hGrid,int row ,int col ,char *pszBuf,int buf_size);
extern "C"_declspec(dllimport)
BOOL RR_GridCtrl_SetCellText(HWND hGrid,int row ,int col ,char *pszText);
extern "C"_declspec(dllimport)
HWND RR_Create_GridCtrl(DWORD dwStyle,HWND hWndParent,RECT *pGridRect, int nId,char szGridTitle[],int rows,int cols);
extern "C"_declspec(dllimport)
BOOL RR_Load_GridCtrl(char szFile[],HWND hGrid);
extern "C"_declspec(dllimport)
BOOL RR_Save_GridCtrl(char szFile[],HWND hGrid);
extern "C"_declspec(dllimport)
HWND RR_GetDlgGridItem(HWND hDlg,int id);
...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.