Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

117 lines
2.4 KiB
C++

#include "stdafx.h"
#include "CWQTPDlg.h"
IMPLEMENT_DYNAMIC(CWQTPDlg, CDialog)
CWQTPDlg::CWQTPDlg(CWnd* pParent /*=NULL*/)
: CDialog(IDD_WQTP_DLG, pParent)
{
m_idMatCur.setNull();
m_sMaterialCur = _T("");
}
CWQTPDlg::~CWQTPDlg()
{
}
void CWQTPDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_wndListCtrl);
}
BEGIN_MESSAGE_MAP(CWQTPDlg, CDialog)
ON_BN_CLICKED(IDOK, &CWQTPDlg::OnBnClickedOk)
ON_BN_CLICKED(IDC_BUTTON1, &CWQTPDlg::OnBnClickedButton1)
END_MESSAGE_MAP()
void CWQTPDlg::SetMaterial(LPCTSTR pszMat, const AcDbObjectId &idMat)
{
m_sMaterialCur = pszMat;
m_idMatCur = idMat;
}
bool CWQTPDlg::GetMaterial(CString &szMat, AcDbObjectId &idMat)
{
szMat = m_sMaterialCur;
idMat = m_idMatCur;
return idMat.isValid();
}
BOOL CWQTPDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_wndListCtrl.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_SINGLEROW);
m_wndListCtrl.InsertColumn(0, _T("名称"), LVCFMT_LEFT, 500, 0);
ShowMaterials();
return TRUE;
}
void CWQTPDlg::OnBnClickedOk()
{
POSITION ps = m_wndListCtrl.GetFirstSelectedItemPosition();
if (ps != NULL)
{
int nItem = m_wndListCtrl.GetNextSelectedItem(ps);
if (nItem != -1)
{
m_sMaterialCur = m_wndListCtrl.GetItemText(nItem, 0);
DWORD_PTR dwData = m_wndListCtrl.GetItemData(nItem);
m_idMatCur.setFromOldId(dwData);
}
}
else
{
AfxMessageBox(_T("请选择材质条目!"));
return;
}
CDialog::OnOK();
}
#define MA_BYBLOCK _T("ByBlock")
#define MA_BYLAYER _T("ByLayer")
#define MA_GLOBAL _T("Global")
void CWQTPDlg::ShowMaterials()
{
m_wndListCtrl.DeleteAllItems();
Acad::ErrorStatus es;
AcDbDictionary *pMaterialDict;
es = acdbCurDwg()->getMaterialDictionary(pMaterialDict, AcDb::kForRead);
if (es == Acad::eOk)
{
int nItem = - 1;
AcDbDictionaryIterator *pIt = pMaterialDict->newIterator();
if (pIt != NULL)
{
for (;!pIt->done();pIt->next())
{
LPCTSTR pszName = pIt->name();
if (_tcscmp(pszName, MA_BYBLOCK) == 0 ||
_tcscmp(pszName, MA_BYLAYER) == 0 ||
_tcscmp(pszName, MA_GLOBAL) == 0)
{
continue;
}
AcDbObjectId id = pIt->objectId();
nItem = m_wndListCtrl.InsertItem(m_wndListCtrl.GetItemCount(),pszName);
m_wndListCtrl.SetItemData(nItem, id.asOldId());
}
delete pIt;
}
pMaterialDict->close();
}
}
void CWQTPDlg::OnBnClickedButton1()
{
ShowMaterials();
}