putting a CGridCtrl in a static CSplitterWnd
Danny Lauwers -- dlauwers@innet.be Monday, July 08, 1996 NT4.0b2 / VC++4.1 / MFC4 Hello, I am trying to put a CGridCtrl table object into my first pane of my static CSplitterWnd class. I can create a CSplitter with createstatic that has to panes (1,2) and can create two CWnd objects in pane 0 (0,0) and pane 1 (0,1). The splitter displays these empty CWnd objects, and the splitter works. When I then want to replace the CWnd in the CreateView with a CGridCtrl (Microsoft Grid object included with the ad component OLE) I get an ASSERT when the CreateView is checking DlgCtrlID and the PanID on almost the last line of code. (internal code MFC). I then tried to just make the first pane a CWnd and gave this pointer as parent parameter for the create of my CGridCtrl object. So the object is create outside of the createview process but by saying that the parent is the first pane CWnd, it (seems) to have te same effect that the table is living in the first pane. ofcourse I have an extra CWnd object. I don't know if I could subclass things here ?? Is there some extra initialisation I must do before I directly can include a CGridCtrl or other OCX Object in a CSplitterWnd pane. Or do I always have to make an extra CWnd as parent ? I have read the Knowledge base Q151032 SAMPLE Gensplit: Putting a generic CWnd in a Splitter, and the Technote 29 of CSplitterWnd but I think there is something else atwork here!!! Any Idea's Thanks Danny Lauwers ========================================================== Ing. Danny Lauwers (dlauwers@innet.be) Intersoft Electronics Lammerdries 27 2250 Olen Belgium Europe Tel: +32 14 231811 Fax: +32 14 231944 ---------------------------------------------------------- Radar verification Hard- & software Fotofinish and timing of sportevents Footscan applications and more ... ==========================================================
Alberto Massari -- alby@belva.laboratorium.dist.unige.it Monday, July 15, 1996 At 21.52 08/07/96 +0200, you wrote: >I am trying to put a CGridCtrl table object into my first pane of my static >CSplitterWnd class. I can create a CSplitter with createstatic that has to >panes (1,2) and can create two CWnd objects in pane 0 (0,0) and pane 1 (0,1). >The splitter displays these empty CWnd objects, and the splitter works. > >When I then want to replace the CWnd in the CreateView with a CGridCtrl >(Microsoft Grid object included with the ad component OLE) I get an ASSERT >when the CreateView is checking DlgCtrlID and the PanID on almost the last >line of code. (internal code MFC). I had the same problem when creating an OLE server with a multisplitter document. So I had to redefine some MFC methods because they have hardcoded the value AFX_IDW_PANE_FIRST in some OLE functions. I had to derive my own OLE class to use a particular value given by CSplitterWnd::IdFromRowCol. Alberto ----------------------------------------------------------------------- Alby@MusArt.dist.unige.it is: Alberto Massari Computer Music Lab Universy of Genoa -ITALY- http://MusArt.dist.unige.it/~alby/ -----------------------------------------------------------------------
| Вернуться в корень Архива |