======================================
前言
======================================
小弟在搞Solidworks的二次开发,但由于VC++对数据库方面的支持不及DELPHI,所以
我把Solidworks的API封装成Delphi的XXX_TLB.PAS,一切都好象和C++一样的能实现对
Solidworks的二次开发,但小弟还有一个技术没有掌握。
如果谁帮小弟解决这以下的问题,我将会把我对Solidworks封装的源码公开:)这应该能
给Solidworks二次开发人员一些帮助吧。:)
======================================
问题:
======================================
在Solidworks的API中有一个函数FeatMgrView::GetFeatMgrViewWnd,它能近回一个CWND HANDLE。
请问我如何才能把Delphi开发的FORM放置到它(CWND HANDLE)上呢。
======================================
函数的说明(英文)
======================================
Description
This method will get the FeatureManager design tree window handle as a CWnd object. You may use this CWnd in combination with standard MFC calls to draw into this view as desired.
Syntax (OLE Automation)
retval = FeatMgrView.GetFeatMgrViewWnd ()
Return:
(long) retval
The CWnd handle of the FeatureManager design tree view
Syntax (COM)
status = FeatMgrView->GetFeatMgrViewWnd ( &retval )
Output:
(long) retval
The CWnd handle of the FeatureManager design tree view
Return:
(HRESULT)status
S_OK if successful
Res
You should make this call when the FeatureManager design tree view is created with ModelDoc::CreateFeatureMgrView. This method is not needed with ModelDoc::AddFeatureMgrView since you created the view and would, therefore, already have its handle.
前言
======================================
小弟在搞Solidworks的二次开发,但由于VC++对数据库方面的支持不及DELPHI,所以
我把Solidworks的API封装成Delphi的XXX_TLB.PAS,一切都好象和C++一样的能实现对
Solidworks的二次开发,但小弟还有一个技术没有掌握。
如果谁帮小弟解决这以下的问题,我将会把我对Solidworks封装的源码公开:)这应该能
给Solidworks二次开发人员一些帮助吧。:)
======================================
问题:
======================================
在Solidworks的API中有一个函数FeatMgrView::GetFeatMgrViewWnd,它能近回一个CWND HANDLE。
请问我如何才能把Delphi开发的FORM放置到它(CWND HANDLE)上呢。
======================================
函数的说明(英文)
======================================
Description
This method will get the FeatureManager design tree window handle as a CWnd object. You may use this CWnd in combination with standard MFC calls to draw into this view as desired.
Syntax (OLE Automation)
retval = FeatMgrView.GetFeatMgrViewWnd ()
Return:
(long) retval
The CWnd handle of the FeatureManager design tree view
Syntax (COM)
status = FeatMgrView->GetFeatMgrViewWnd ( &retval )
Output:
(long) retval
The CWnd handle of the FeatureManager design tree view
Return:
(HRESULT)status
S_OK if successful
Res
You should make this call when the FeatureManager design tree view is created with ModelDoc::CreateFeatureMgrView. This method is not needed with ModelDoc::AddFeatureMgrView since you created the view and would, therefore, already have its handle.
解决方案 »
- 怎么IdUDPClient1.ReceiveString无论如何都是空啊?
- 请教:从clientdataset保存到本地再上传到服务器数据库(MS server 2000 )问题,100分在线答谢!
- 如何用query组件,来执行存储过程???存储过程有结果返回,如何取得呢?急。。。。。。。。。。。。。。。。。。
- 程序员不如卖羊肉串的!!!
- 如何使用Media player 9播放Realplay格式的文件
- 【JAVA视频教学】 部分下载 ★★★
- 如何实现表的切换??
- 怎样实现RTF文档的透明效果
- 终于完成了一个小软件,可是没处发表
- 请好心人帮忙
- 哪儿有 delphi 7 Architect 版本下载
- 请问大家如何用DELPHI6.0(BDE)和数据库SQL SERVER2000进行连接?
{
LPMODELDOC2 pModelDoc;
LPFEATMGRVIEW pFeatMgr;
CRect rect; // Get the active doc and create a feature manager view in it
if (TheApplication->GetSWApp()->get_IActiveDoc2( &pModelDoc ) == S_OK)
{
TheApplication->SetResources(); // Ensure we are using our resources
//m_Bitmap.LoadMappedBitmap(IDB_BITMAP1);
m_Bitmap.LoadMappedBitmap(IDB_BITMAP1, 0, NULL);
TheApplication->ResetResources(); // Reset to SolidWorks resources
if (pModelDoc->ICreateFeatureMgrView3 ((long *)&m_Bitmap, auT("自定义FeatureManager"), swFeatMgrPaneBottom, &pFeatMgr) == S_OK)
{
if ( pFeatMgr == NULL )
{
AfxMessageBox(_T("ICreateFeatureMgrView returned S_OK and NULL pointer"));
}
else
{
// Create a control item to handle events for the PartDoc
m_pEventHandler = new FMFeatureManagerEvents;
m_pEventHandler->OnCreate(pFeatMgr);
m_pEventHandler->m_pFMView = this;
// Create a window in the Feature Manager window
pFeatMgr->GetFeatMgrViewWnd((long*)&m_pParent);
m_pParent->GetClientRect (&rect); CWnd::Create (NULL, TEXT(""), WS_CHILD | WS_VISIBLE, rect, m_pParent, 1); // Create the Tree Control in our new window
m_TreeCtrl.Create (TVS_HASLINES | TVS_HASBUTTONS | TVS_EDITLABELS, rect, this, 1);
// Display the windows
ShowWindow (SW_SHOW);
MoveWindow (&rect);
m_TreeCtrl.ShowWindow (SW_SHOW);
m_TreeCtrl.MoveWindow (&rect);
pFeatMgr->Release();
}
}
pModelDoc->Release();
}
return true;
}
// -------------------------------------------------------------------
//
// Filename: RootFeatureManagerView.h
// Description: Defines the CFMView, CFMTreeCtrl, and
// FMFeatureManagerEvents classes that
// are implemented to generate FeatureMgrViews
//
// -------------------------------------------------------------------
#include "ccitem.h"// Call this function whenever a new window is created to add
// our custom TAB to the Feature Manager View
extern void CreateFeatureManagerView();
extern void TraverseAssemblyComponent01();// --------------------------------
// CLASS DEFINITIONS
// --------------------------------// Forward definitions
class CFMView; // The class that controls our Feature Manager Tab
class CFMTreeCtrl; // SubClass of CTreeCtrl for the Tree Control
class FMFeatureManagerEvents; // Handles Feature Manager Notifications// --------------------------------
// SubClass the CTreeCtrl so that we can find when the user is starting to
// do a Label Edit operation and set the focus.
// --------------------------------// Class definition
class CFMTreeCtrl : public CTreeCtrl
{
LRESULT WindowProc( UINT message, WPARAM wParam, LPARAM lParam );
};// --------------------------------
// Class CFMView
// Manage creation/destruction and activation of the Feature Manager View
// Also gets the TVN_ENDLABELEDIT when the user finishes editing a label
// in the tree control.
// --------------------------------
class CFMView : public CWnd
{
public:
BOOL Create();
private:
BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
protected:
BOOL OnDestroyNotify(bool bDeleteNotificationObject);// Data
public:
CFMTreeCtrl m_TreeCtrl; // The actual Tree control
private:
CWnd *m_pParent; // Parent View of our window
CBitmap m_Bitmap; // Holds the image in the SolidWorks Tab
FMFeatureManagerEvents* m_pEventHandler;// Receives notifications from SolidWorks friend class FMFeatureManagerEvents;
afx_msg void OnPaint(); DECLARE_MESSAGE_MAP()};// --------------------------------
// Class to handle notifications from SolidWorks for the Feature Manager View
// --------------------------------class FMFeatureManagerEvents : public CControlItem
{
public:
~FMFeatureManagerEvents();
DECLARE_EVENTSINK_MAP() // ole event handlers
HRESULT ActivateNotify(VARIANT* View);
HRESULT DeactivateNotify(VARIANT* View);
HRESULT DestroyNotify(VARIANT* view);// Data
protected:
CFMView *m_pFMView; friend class CFMView;
};
GetFeatMgrViewWnd是取得刚才新建的设计页的窗口句柄。
HWND SetParent(HWND hWndChild,HWND hWndNewParent);