增强GridCtrl
立即下载
资源介绍:
不错的一个gridctrl例子
// GridCtrl.cpp : implementation file
//
// MFC Grid Control
//
// Written by Chris Maunder
// mailto:chrismaunder@codeguru.com
//
// Copyright (c) 1998-1999.
//
// The code contained in this file is based on the original
// WorldCom Grid control written by Joe Willcoxson,
// mailto:chinajoe@aol.com
// http://users.aol.com/chinajoe
// The code has gone through so many modifications that I'm
// not sure if there is even a single original line of code.
// In any case Joe's code was a great framewaork on which to
// build.
//
// This code may be used in compiled form in any way you desire. This
// file may be redistributed unmodified by any means PROVIDING it is
// not sold for profit without the authors written consent, and
// providing that this notice and the authors name and all copyright
// notices remains intact. If the source code in this file is used in
// any commercial application then a statement along the lines of
// "Portions copyright (c) Chris Maunder, 1998" must be included in
// the startup banner, "About" box or printed documentation. An email
// letting me know that you are using it would be nice as well. That's
// not much to ask considering the amount of work that went into this.
//
// This file is provided "as is" with no expressed or implied warranty.
// The author accepts no liability for any damage/loss of business that
// this product may cause.
//
// Expect bugs!
//
// Please use and enjoy, and let me know of any bugs/mods/improvements
// that you have found/implemented and I will fix/incorporate them into
// this file.
//
// History:
// --------
// This control is constantly evolving, sometimes due to new features that I
// feel are necessary, and sometimes due to existing bugs. Where possible I
// have credited the changes to those who contributed code corrections or
// enhancements (names in brackets) or code suggestions (suggested by...)
//
// 1.0 20 Feb 1998 First release version.
// 1.01 24 Feb 1998 Memory leak fix (Jens Bohlmann)
// Fixec typo (my fault!) in CMemDC.h - Claus Arend-Schneider)
// Bug in GetSelectedCount (Lyn Newton)
// 1.02 4 Mar 1998 Scrolling a little neater (less dead area)
// Cell selection via OnTimer correctly updates Focus cell (Suggested by Lyn Newton)
// 1.03 17 Mar 1998 Clipboard functions added, Intellimouse support
// Using 32 bit scroll pos functions instead of 16 bit ("cronos")
// Added OLE drag and drop.
// 1.04 6 Apr 1998 Added Ctrl-A = Select All, fixed CGridDropTarget
// problem, minor bug in CopyTextFromGrid (assert on
// empty string). Cleaned up reponse to m_bEditable
// (OnDrop and Ctrl-X disabled)
// 1.05 10 May 1998 Memory leak fixed. (Yuheng Zhao)
// Changed OLE initialisation (Carlo Comino)
// Added separate fore + background cell colours (Suggested by John Crane)
// ExpandToFit etc cleaned up - now decreases and
// increases cell sizes to fit client area.
// Added notification messages for the grid's parent (Suggested by
// Added GVIS_READONLY state
// 1.06 20 May 1998 Added TAB key handling. (Daniela Rybarova)
// Intellimouse code correction for whole page scrolling (Paul Grant)
// Fixed 16 bit thumb track problems (now 32 bit) (Paul Grant)
// Fixed accelerator key problem in CInPlaceEdit (Matt Weagle)
// Fixed Stupid ClassWizard code parsing problem (Michael A. Barnhart)
// Double buffering now programmatically selectable
// Workaround for win95 drag and drop registration problem
// Corrected UNICODE implementation of clipboard stuff
// Dragging and dropping from a selection onto itself no
// no longer causes the cells to be emptied
// 1.07 28 Jul 1998 Added EnsureVisible. (Roelf Werkman)
// Fixed delete key problem on read-only cells. (Serge Weinstock)
// OnEndInPlaceEdit sends notification AFTER storing
// the modified text in the cell.
// Added CreateInPlaceEditControl to make it easier to
// change the way cells are edited. (suggested by Chris Clark)
// Added Set/GetGridColor.
// CopyTextToClipboard and PasteTextToGrid problem with
// blank cells fixed, and CopyTextToClipboard tweaked.
// SetModified called when cutting text or hitting DEL. (Jonathan Watters)
// Focus cell made visible when editing begins.
// Blank lines now treated correctly when pasting data.
// Removed ES_MULTILINE style from the default edit control.
// Added virtual CreateCell(row, col) function.
// Fonts now specified on a per-cell basis using Get/SetItemFont.
// 1.08 6 Aug 1998 Ctrl+arrows now allows cell navigation. Modified
// CreateInPlaceEditControl to accept ID of control.
// Added Titletips to grid cells. (Added EnableTitleTips / GetTitleTips)
// 1.09 12 Sep 1998 When printing, parent window title is printed in header - Gert Rijs
// GetNextItem search with GVNI_DROPHILITED now returns
// cells with GVIS_DROPHILITED set, instead of GVIS_FOCUSED (Franco Bez)
// (Also fixed minor bug in GetNextItem) (Franco Bez)
// Cell selection using Shift+arrows works - Franco Bez
// SetModified called after edits ONLY if contents changed (Franco Bez)
// Cell colours now dithered in 256 colour screens.
// Support for MSVC 4.2 (Graham Cheetham)
// 1.10 30 Nov 1998 Titletips now disappear on a scroll event. Compiler errors
// fixed. Grid lines drawing fixed (Graham Cheetham).
// Cell focus fix on Isert Row/Col (Jochen Kauffmann)
// Added DeleteNonFixedRows() (John Rackley)
// Message #define conflict fixed (Oskar Wieland)
// Titletips & cell insert/delete fix (Ramesh Dhar)
// Titletips repeat-creation bug fixed.
// GVN_SELCHANGED message now sends current cell ID
// Font resource leak in GetTextExtent fixed (Gavin Jerman)
// More TAB fixes (Andreas Ruh)
// 1.11 1 Dec 1998 GetNextItem bug fix (suggested by Francis Fu)
// InsertColumn (-1) fix (Roy Hopkins)
// Was too liberal with the "IsEditable"'s. oops. (Michel Hete)
// 1.11a 4 Jan 1999 Compiler errors in VC6 fixed.
// 1.12 10 Apr 1999 Cleanup to allow GRIDCONTR