Step3Dlg.cpp

上传用户:tjyzx0508
上传日期:2013-02-16
资源大小:254k
文件大小:4k
源码类别:ActiveX/DCOM/ATL
开发平台:Visual C++
  1. // Step3Dlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "Step3.h"
  5. #include "Step3Dlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CStep3Dlg dialog
  13. CStep3Dlg::CStep3Dlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CStep3Dlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CStep3Dlg)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  20. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  21. }
  22. void CStep3Dlg::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CStep3Dlg)
  26. // NOTE: the ClassWizard will add DDX and DDV calls here
  27. //}}AFX_DATA_MAP
  28. }
  29. BEGIN_MESSAGE_MAP(CStep3Dlg, CDialog)
  30. //{{AFX_MSG_MAP(CStep3Dlg)
  31. ON_WM_PAINT()
  32. ON_WM_QUERYDRAGICON()
  33. //}}AFX_MSG_MAP
  34. END_MESSAGE_MAP()
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CStep3Dlg message handlers
  37. BOOL CStep3Dlg::OnInitDialog()
  38. {
  39. CDialog::OnInitDialog();
  40. // Set the icon for this dialog.  The framework does this automatically
  41. //  when the application's main window is not a dialog
  42. SetIcon(m_hIcon, TRUE); // Set big icon
  43. SetIcon(m_hIcon, FALSE); // Set small icon
  44. // TODO: Add extra initialization here
  45. return TRUE;  // return TRUE  unless you set the focus to a control
  46. }
  47. // If you add a minimize button to your dialog, you will need the code below
  48. //  to draw the icon.  For MFC applications using the document/view model,
  49. //  this is automatically done for you by the framework.
  50. void CStep3Dlg::OnPaint() 
  51. {
  52. if (IsIconic())
  53. {
  54. CPaintDC dc(this); // device context for painting
  55. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  56. // Center icon in client rectangle
  57. int cxIcon = GetSystemMetrics(SM_CXICON);
  58. int cyIcon = GetSystemMetrics(SM_CYICON);
  59. CRect rect;
  60. GetClientRect(&rect);
  61. int x = (rect.Width() - cxIcon + 1) / 2;
  62. int y = (rect.Height() - cyIcon + 1) / 2;
  63. // Draw the icon
  64. dc.DrawIcon(x, y, m_hIcon);
  65. }
  66. else
  67. {
  68. CDialog::OnPaint();
  69. }
  70. }
  71. // The system calls this to obtain the cursor to display while the user drags
  72. //  the minimized window.
  73. HCURSOR CStep3Dlg::OnQueryDragIcon()
  74. {
  75. return (HCURSOR) m_hIcon;
  76. }
  77. #include "msword9.h"
  78. #include <AtlBase.h>
  79. void CStep3Dlg::OnOK() 
  80. {
  81. ////////////// 这次,我们要控制在WORD中输入一些字符了 /////////////////////
  82. /************* WORD 录制的宏,新建一个空文档,然后输入一些文字 ************
  83.     Documents.Add Template:= _
  84.         "C:Documents and SettingsAdministratorApplication DataMicrosoftTemplatesNormal.dot" _
  85.         , NewTemplate:=False, DocumentType:=0
  86.     Selection.TypeText Text:="HELLO"
  87.     Selection.TypeParagraph
  88.     Selection.TypeText Text:="大家好"
  89. ***************************************************************************/
  90. _Application app;
  91. app.CreateDispatch(_T("Word.Application"));
  92. app.SetVisible(TRUE);
  93. AfxMessageBox(_T("看好了,就要新建一个空白文档了"));
  94. //通过WORD宏可以知道,由于要使用Documents,于是我们定义一个并从app中取得
  95. Documents docs=app.GetDocuments();
  96. //准备调用Documents::Add函数了,需要定义4个参数。
  97. //从WORD宏可以看出来3个参数的类型为:
  98. //Template字符,NewTemplate布尔,DocumentType数值
  99. //但Add函数还需要一个参数是Visible,傻子也能看出来这个值表示是否显示出新文档
  100. //并且可以给默认值(VT_EMPTY)
  101. CComVariant Template(_T("")); //为了简单,没有使用WORD的文档模板
  102. CComVariant NewTemplate(false),DocumentType(0),Visible;
  103. docs.Add(&Template,&NewTemplate,&DocumentType,&Visible);
  104. AfxMessageBox(_T("下面,程序要向WORD发送字符啦"));
  105. //通过WORD宏可以知道,由于要使用Selection,于是我们定义一个并从app中取得
  106. //Selection表示输入点,即光标闪烁的那个地方
  107. Selection sel=app.GetSelection();
  108. //调用函数Selection::TypeText 向WORD发送字符
  109. sel.TypeText(_T("HELLOrn大家好呀"));
  110. AfxMessageBox(_T("看见了吗?我要退出啦"));
  111. sel.ReleaseDispatch(); //Selection 不用了,一定要释放
  112. docs.ReleaseDispatch(); //Documents 也不用了
  113. CComVariant SaveChanges(false),OriginalFormat,RouteDocument;
  114. app.Quit(&SaveChanges,&OriginalFormat,&RouteDocument);
  115. app.ReleaseDispatch();
  116. AfxMessageBox(_T("下面该学习Setp4了"));
  117. }