我是做CAD开发的。CAD能通过加载DLL文件实现功能的扩展,现在我想在加载向CAD的主窗口挂上一个自已的CDialogBar。
我可以得到CAD主窗口的指针值,可每次在创建CDialogBar时总是失败,不知原因何在。请高手出招!
我的代码:
class CWatchBar : public CDialogBar...
CWatchBar *g_pWatchBar=NULL;void mdee()
{
if(!g_pWatchBar)
{
CMDIFrameWnd* pCadFrm = sds_icadmain();//CAD主窗口指针
if (!pCadFrm)
return;
g_pWatchBar = new CWatchBar;
if (!g_pWatchBar->Create(pCadFrm,IDD_YFWATCH,0,IDD_YFWATCH)))//这里总是出错,我能肯定不是风格值有问题
{
delete g_pWatchBar;
g_pWatchBar=NULL;
return;
}
g_pWatchBar->m_hWndOwner= adsw_hwndAcad;
g_pWatchBar->m_pDockSite=pCadFrm;
// g_pDlgMgxBar->m_pDockSite->AddControlBar(g_pDlgMgxBar);
g_pWatchBar->SetBarStyle(g_pWatchBar->GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
g_pWatchBar->EnableDocking(CBRS_ALIGN_RIGHT);
pCadFrm->DockControlBar((CControlBar *)g_pWatchBar, AFX_IDW_DOCKBAR_RIGHT);
pCadFrm->SetFocus();
}
else
{
BOOL bShow = g_pWatchBar->IsVisible();
if(!bShow)
sds_icadmain()->ShowControlBar(g_pWatchBar, !bShow, FALSE);
sds_icadmain()->SetFocus();
}
return;
}