您好,欢迎光临本网站![请登录][注册会员]  
文件名称: RRGRID
  所属分类: C
  开发工具:
  文件大小: 133kb
  下载次数: 0
  上传时间: 2007-08-22
  提 供 者: free****
 详细说明: 下午发的那个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最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 控件
 输入关键字,在本站1000多万海量源码库中尽情搜索: