Dockingbar 만들기
Arx에서도 MDL에서도 Dockingbar는 인기가 많은 모양입니다.
V8i에서 사용가능한 Dockingbar를 만들어 달라고 해서 한번 만들어 봤습니다.
여기서 가장 핵심은 Microstation SDK의 CBNETDockableDialog 클래스를 사용한다는 겁니다. 이 클래스를 사용하면 손쉽게 도킹바를 만들수 있습니다.
우선 결과부터 먼저 보시죠(실제 코딩은 거의 없기 때문에…)


전체적인 흐름은 앞서 설명한 것과 동일하고요,
도킹바로 사용할 다이얼로그를 하나 만들고 거기서 클래스 하나를 생성합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once
#include <mfc/CBNETDockableDialog.h>
// CDockableDialog dialog
class CDockableDialog : public CBNETDockableDialog
{
DECLARE_DYNAMIC(CDockableDialog)
public:
CDockableDialog(TCHAR *pTitle = NULL); // standard constructor
virtual ~CDockableDialog();
// Dialog Data
enum { IDD = IDD_DOCKABLE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
};
그리고 MdlMain 함수에서 도킹바를 생성합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*******************************************************************************************/
//Function:extern "C" DLLEXPORT int MdlMain
//Desc:Entry point of the program.
//******************************************************************************************/
extern "C" __declspec(dllexport) int MdlMain
(
int argc,
char *argv[]
)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDockableDialog* pDockable = new CDockableDialog(_T("Dockable Dialog"));
if(NULL != pDockable)
{
pDockable->Create();
}
return SUCCESS;
}
CBNETDockableDialog 클래스는 SDK안에 있습니다.
- 2011.08.19
SDK안에 있는 Docking관련 소스 파일들을 프로젝트에 추가했다면 nativewinmfc.lib 파일을 라이브러리 항목에 추가하지 마세요. nativewinmfc.lib 파일에 동일한 Docking관련 내용을 가지고 있습니다.