15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Using OCX in a SDI app.

PJ Durai -- pjdurai@pixtran.com
Monday, July 15, 1996


     VC++ 4.1                NT 3.51, 95
     
     Hi People,
     
     I am trying to use an OLE control in the client area of an SDI full 
     OLE server app. I had it imported from the component gallary and have 
     a member of the generated class in my View class and create it in the 
     OnCreate function of the view.
     
     Things work fine except I can't figure out how to catch the events 
     fired from the OCX control.  Since I am not using a dialog box or a 
     form view I cant have an EVENT_MAP. ( that requires a control-id for 
     the OCX control). Any ideas how to do this in a non-dialog app ? 
     Documentation is very sketchy on this issue.
     
     Appreciate your time.
     pj



Mike Blaszczak -- mikeblas@msn.com
Saturday, July 20, 1996

[Mini-digest: 4 responses]

I'm not sure I understand the problem your facing: the CreateControl() 
function accepts an ID parameter which dictates the ID of the control you're 
creating. Why can't you make that ID parameter match the constant you specify 
in your EVENT_MAP?

The sample in my book describes how to dynamically capture events thrown by 
controls which you've created with CreateControl(), so maybe you should have a 
look at that code if you need to handle multiple controls or dynamically 
create and destroy controls with different IDs.

.B ekiM
http://www.nwlink.com/~mikeblas

----------
From: 	owner-mfc-l@netcom.com on behalf of PJ Durai
Sent: 	Friday, July 19, 1996 5:18 PM
To: 	mfc-l@netcom.com
Subject: 	Using OCX in a SDI app.


     VC++ 4.1                NT 3.51, 95
     
     Hi People,
     
     I am trying to use an OLE control in the client area of an SDI full 
     OLE server app. I had it imported from the component gallary and have 
     a member of the generated class in my View class and create it in the 
     OnCreate function of the view.
     
     Things work fine except I can't figure out how to catch the events 
     fired from the OCX control.  Since I am not using a dialog box or a 
     form view I cant have an EVENT_MAP. ( that requires a control-id for 
     the OCX control). Any ideas how to do this in a non-dialog app ? 
     Documentation is very sketchy on this issue.
     
     Appreciate your time.
     pj

-----From: murugesh@mail.cswl.com

     Hi,
     
     The easy way to do this is to insert the OCX Control in dialog and 
     using the Class Wizard add the event handlers for the required events. 
     And then cut&paste this event sink map to u'ver view class. This 
     should work fine.
     
     Regards,
     Murugesh SS
     murugesh@cswl.com

-----From: "Corporate Microcomputing Dept." 

There is an MSDN article on this (or maybe it was in the VC++ papers on
the Web) called "Handling Events from Dynamically Instantiated OLE
Controls" by John Elsbree. I found this after I figured out how to do this
unfortunately but he explains it better.

Basically you make a dummy dialog, add the control there, and then cut n
paste to your other class.

I also found an EVNET_REFLECT_MAP that allows the control class to handle
it's own events without a control id. It doesn't matter what you pick for
the id as long as it is unique among the controls.

Dave Kolb
SAS Institute
-----From: mss@tartus.com (Michael Scherotter)

Use a CFormView as the View Class.

-- 
Michael S. Scherotter            |Architectural Design Tools
Lead Software Developer          |AutoCAD Applications
Tartus Development, Inc.         |Custom CAD Solutions
630 Las Gallinas Ave #300        |__________________________ 
San Rafael, CA 94903                          mss@tartus.com
(415) 491-8925                          michael@charette.com
(415) 491-8921 (fax)               71035.1675@compuserve.com
               http://www.tartus.com/people/mss
____________________________________________________________




| Вернуться в корень Архива |