disdialog.cpp
上传用户:qie0807
上传日期:2014-09-18
资源大小:413k
文件大小:5k
源码类别:

CAD

开发平台:

Visual C++

  1. // disdialog.cpp : implementation file
  2. //
  3. #include "StdAfx.h"
  4. #include "resource.h"
  5. #include "disdialog.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // disdialog dialog
  13. disdialog::disdialog(CWnd* pParent /*=NULL*/)
  14. : CDialog(disdialog::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(disdialog)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. }
  20. void disdialog::DoDataExchange(CDataExchange* pDX)
  21. {
  22. CDialog::DoDataExchange(pDX);
  23. //{{AFX_DATA_MAP(disdialog)
  24. DDX_Control(pDX, IDC_EDIT3, m_face_size);
  25. DDX_Control(pDX, IDC_EDIT2, m_face_class);
  26. DDX_Control(pDX, IDC_EDIT1, m_tun_name);
  27. //}}AFX_DATA_MAP
  28. }
  29. BEGIN_MESSAGE_MAP(disdialog, CDialog)
  30. //{{AFX_MSG_MAP(disdialog)
  31. //}}AFX_MSG_MAP
  32. END_MESSAGE_MAP()
  33. /////////////////////////////////////////////////////////////////////////////
  34. // disdialog message handlers
  35.        char ch1[50];
  36.        char ch2[50];
  37.        char ch3[50];
  38.  struct mytag        //建立巷道属性表结构
  39. {
  40. double nameind;        //索引号
  41.     char name[50];   //巷道名称
  42.     float enddist;
  43. float endhigh;
  44. float twidth;
  45. float bwidth;
  46. float wallhigh;
  47. int   tunneltype;//巷道类型
  48. }temtag;            //temtag结构存放巷道属性值
  49. void diswindow()
  50. {
  51. //TODO:Implement the command.
  52.    struct resbuf *rbEnt;
  53.    struct resbuf *rbTrav;
  54.        ads_name ent;
  55.        ads_point pt;
  56.    char mktext[50];
  57. //    char cmpmktext[50];
  58.        int cmp1=0;
  59.    int cmp2=0;
  60.    acedEntSel(NULL,ent,pt);//选择文本实体
  61.    rbEnt=acdbEntGet(ent);//获得文本实体
  62.    if(!rbEnt)
  63.    {
  64.    acutPrintf("nFailed to get entities result buffer linked list.");
  65.  return;  
  66.    }
  67.    rbTrav=rbEnt;
  68.    while(rbTrav)
  69.    {
  70.    switch(rbTrav->restype)
  71.    { 
  72.    case 1:
  73.          sprintf(mktext,"%s",rbTrav->resval.rstring);//给变量赋值
  74.  acutPrintf("nThe entity text is <Entity name:%s>",mktext);
  75.          break;
  76.    default:
  77.    break;
  78.    
  79.    }
  80.    rbTrav=rbTrav->rbnext;
  81.    }
  82.    
  83.  if (rbEnt)
  84.    {
  85.    acutRelRb(rbEnt);
  86.    }
  87.   
  88.  //文件路径字符串赋值给FILENAME变量
  89.    CString FILENAME= "D:/wzy/Db3";
  90.      char attQuery[256];
  91.      sprintf(attQuery,"SELECT * FROM 巷道属性表");//设置SQL查寻语句
  92.     
  93. CDaoDatabase db;                    //声明一个数据库对象
  94.        //按指定路径打开数据库
  95. db.Open(FILENAME,FALSE,FALSE,_T(""));
  96. CDaoRecordset att_rs(&db);//记录集与数据库连接
  97.         if (att_rs.IsOpen()) att_rs.Close();
  98. att_rs.Open(dbOpenDynaset,attQuery,0);//动态打开记录集
  99. //读取属性表数据
  100. int iRecords =att_rs.GetRecordCount();//统计记录个数
  101.         if (!att_rs.IsBOF()) att_rs.MoveFirst();//把指针移到开始处
  102.         
  103. while (!att_rs.IsEOF()) 
  104. {
  105.             COleVariant vNameInd =att_rs.GetFieldValue("NameIndex");
  106.             COleVariant vTunName =att_rs.GetFieldValue("Name");
  107. COleVariant vEndDist = att_rs.GetFieldValue("EndDist");
  108.             COleVariant vEndHigh = att_rs.GetFieldValue("EndHigh");
  109.             COleVariant vTopWidth = att_rs.GetFieldValue("TopWith");
  110.             COleVariant vButWidth = att_rs.GetFieldValue("ButtomWith");
  111.             COleVariant vWallHigh = att_rs.GetFieldValue("WallHigh");
  112.             COleVariant vTunType = att_rs.GetFieldValue("Tunneltype");
  113. //程序结构变量提取属性数据库字段值
  114.             
  115. sprintf(temtag.name,"%s",vTunName.bstrVal);
  116. cmp2=strcmp(mktext,temtag.name);
  117.             
  118. if(cmp2==0)
  119. {
  120. temtag.nameind=vNameInd.lVal;   //巷道名称索引号
  121. sprintf(temtag.name,"%s",vTunName.bstrVal);//巷道名称字符串
  122. temtag.enddist=vEndDist.fltVal;   //点至掌头的距离
  123. temtag.endhigh=vEndHigh.fltVal;   //掌头底板高程或煤仓底部高程
  124. temtag.twidth=vTopWidth.fltVal;   //巷道断面上宽或煤仓半径
  125. temtag.bwidth=vButWidth.fltVal;   //巷道断面下宽
  126. temtag.wallhigh=vWallHigh.fltVal; //拱形指墙高,非拱形指净高
  127. temtag.tunneltype=vTunType.intVal;//巷道断面类型:701-拱形;703-圆形;702-其它
  128.             
  129. break;
  130. }
  131. else
  132.         att_rs.MoveNext();//指到下一条属性记录
  133. }//循环结束(while)
  134. switch(temtag.tunneltype)
  135. {
  136. case 701:
  137. sprintf(ch1,"%s",temtag.name);
  138. sprintf(ch2,"拱 形");
  139. sprintf(ch3,"下宽:%1.1fm  墙高: %1.1fm",temtag.bwidth,temtag.wallhigh);
  140. break;
  141. case 702:
  142.         sprintf(ch1,"%s",temtag.name);
  143. sprintf(ch2,"梯 形");
  144. sprintf(ch3,"上宽:%1.1fm 下宽:%1.1fm 高:%1.1fm",temtag.twidth,temtag.bwidth,temtag.wallhigh);
  145. break;
  146. case 703:
  147. sprintf(ch1,"%s",temtag.name);
  148. sprintf(ch2,"圆 形");
  149. sprintf(ch3,"半径: %1.1fm",temtag.twidth);
  150. break;
  151. }
  152.          att_rs.Close();//关闭巷道属性记录集
  153.  CAcModuleResourceOverride resOverride;
  154.     disdialog dlg(CWnd::FromHandle(adsw_acadMainWnd()));
  155.    if(dlg.DoModal()==IDOK)
  156. {
  157. acutPrintf("naccessful");
  158.   
  159. }//if
  160.   return;
  161. }
  162.    
  163. BOOL disdialog::OnInitDialog() 
  164. {
  165. CDialog::OnInitDialog();
  166. // TODO: Add extra initialization here
  167. m_tun_name.SetWindowText(ch1);
  168. m_face_class.SetWindowText(ch2);
  169. m_face_size.SetWindowText(ch3);
  170. return TRUE;  // return TRUE unless you set the focus to a control
  171.               // EXCEPTION: OCX Property Pages should return FALSE
  172. }