BCG使用经验总结 联系客服

发布时间 : 星期五 文章BCG使用经验总结更新完毕开始阅读460a3d4469eae009581bec0f

BCG使用的经验总结

一、怎样生成一个BCG的树形列表

首先,在需要生成BCG树形列表的界面所在的“.H”文件中加入下面这句话:CBCGPGridCtrl * m_zbxn;

其次,在对应的“.CPP”文件中加入下面的这句话:

将m_zbxn = NULL;这是初始化,必须的,防止野指针的出现。 二、将界面嵌入到当前的DLG窗口的方法

三、需要加入“行选择变化消息响应函数”

在对应的“.H”文件中加入下列标黑的代码

在对应的“.CPP”代码中加入下列标黑的代码

其中的BLJD_ZBXN,为create语句中的最后一个参数,必须保持一致,同时要在H或CPP文件中用#define BLJD_ZBXN 1002,定义一下这个宏,这才能保证嵌入的正确性。

/************************************************************************/ /* 菜单调用函数 */ /************************************************************************/ UINT CPlugBLJD::GetMenu(CMenu * menu, UINT ChildID, char * MenuName) { HMODULE hDLL=GetModuleHandle(_T(PLUG_BLJD_NAME)); HINSTANCE hexe=AfxGetResourceHandle(); AfxSetResourceHandle((HINSTANCE)hDLL); UINT uResID = ChildID; menu->LoadMenu(IDR_BLJD); int iMenuCnt = menu->GetMenuItemCount(); for(int i=0; i < iMenuCnt; i++) { char str[255]={0}; UINT id = 0; id = menu->GetMenuItemID(i); //-------------------------------- //如果id=0,就判断为分割线 //-------------------------------- if(id != 0) { if(id>1000000) { CMenu * pSubMenu = menu->GetSubMenu(i); int iSubMenuCnt = pSubMenu->GetMenuItemCount(); for(int n=0; n < iSubMenuCnt; n++) { id = pSubMenu->GetMenuItemID(n); if(id!=0) { pSubMenu->GetMenuString(id, str, 255, MF_BYCOMMAND); m_uRes = ChildID; pSubMenu->ModifyMenu(id, MF_BYCOMMAND, uResID, str); uResID++; } } } else { menu->GetMenuString(id, str, 255, MF_BYCOMMAND); m_uRes = ChildID; menu->ModifyMenu(id, MF_BYCOMMAND, uResID, str); uResID++;

} } } memcpy(MenuName, \兵力机动(&D)\ AfxSetResourceHandle(hexe); return uResID; }

附录:

需要注意的事情:在COPY代码的时候,一定要注意,最好将原来的代码重新动手打一下。

/************************************************************************/

/* 取下一个装备内码 (当期最大的加一) /************************************************************************/ BOOL CZbxn::GetNextFACode(CString& maxCode) { CADORecordset adoRecordSet(CBLJDProject::m_adoConn); CString strSQL; COleDateTime currentTime = COleDateTime::GetCurrentTime(); strSQL.Format(\like 'ZB%d%s'\

currentTime.GetYear(), \ if ( ! adoRecordSet.Open(strSQL, CADORecordset.openQuery) ) { return FALSE; } CString strMaxCode; adoRecordSet.GetFieldValue(\ if (strMaxCode.GetLength()) { maxCode.Format(\atoi(strMaxCode.Mid(6))+1);

} else { maxCode.Format(\ } adoRecordSet.Close();