MFC在word模板中插入文字和图片生成文档实例(源码下载)

开发环境WINXP,VC6.0,OFFICE 2003。
创建CreatWord对话框工程,在资源视图中添加一个按钮控件生成WORD文档。在CreatWord文件夹下创建一个word模板report.dot,添加一个图片文件temp1.jpg。在word模板中插入标签。
在这里插入图片描述
1、在工具栏中找到 view -> class wizard -> Automation -> add class -> from a tye library选中 offfice 安装的目录中的 MSWORD.OLB ,选中所有列出的类名,点击 OK 完成。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、在CreatWord.h头文件中添加
#include “msword.h”
#include “comutil.h”
#include “comdef.h”

3、在按钮双击事件响应函数中代码如下:

int state=0;
void CCreatWordDlg::OnButton1() 
{
  // TODO: Add your control notification handler code here
  AfxEnableControlContainer();   
  AfxOleInit();
  _Application m_wdApp;  	
 if (!m_wdApp.CreateDispatch("Word.Application"))
 {
 AfxMessageBox(_T("请先安装Office软件!"));
 return ;
 }  

  if (state==1)
  {
  	AfxMessageBox(_T("word已生成!"));
    return;
  }

   char pBuf[250];
GetCurrentDirectory(250,pBuf);
CString CStr=pBuf;
CString CStr1=CStr+"\\report.dot";//word模板名
CString CStr2=CStr+"\\temp1.jpg";//插入图片名
CString CStr3=CStr+"\\test.doc";//生成文档名

      COleVariant covTrue((short)TRUE),
      covFalse((short)FALSE),
      covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR),
      dot(_T(CStr1));

m_wdApp.GetVisible();
Documents docs=m_wdApp.GetDocuments();
_Document docx = docs.Add(dot, covOptional, covOptional, covOptional); Bookmarks bookmarks= docx.GetBookmarks();

Bookmark bookmark = bookmarks.Item(&_variant_t(_T("产品型号")));//插入文字
Range range;
range = bookmark.GetRange();
range.SetText("2021_4_16");

bookmark = bookmarks.Item(&_variant_t(_T("图像")));//插入图片
range = bookmark.GetRange();	
InlineShapes ishaps = range.GetInlineShapes();
InlineShapes ishap = ishaps.AddPicture(_T(CStr2), covFalse, covTrue, covOptional);

docx.SaveAs(COleVariant(CStr3), covOptional, covOptional, covOptional, covOptional,//保存文档
      covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional);

docx.Close(covFalse, covOptional, covOptional);
m_wdApp.Quit(covOptional, covOptional, covOptional);
range.ReleaseDispatch();
bookmarks.ReleaseDispatch();
m_wdApp.ReleaseDispatch();

AfxMessageBox(_T("word文档test.doc生成成功!"));
state=1;
}

运行程序点击生成WORD文档按钮在CreatWord文件夹下将生成test.doc文件。
在这里插入图片描述

打开test.doc文件
在这里插入图片描述源码下载
https://download.csdn.net/download/weixin_42350092/87663041

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MFC,要在List Control插入Check Button按钮,可以通过以下步骤实现: 1. 首先,在资源视图,打开对话框的资源文件。选择List Control控件,设置其为“报表”风格。 2. 在对话框的OnInitDialog函数,使用CListCtrl类的SubclassDlgItem函数将List Control控件关联到CListCtrl对象。 ``` m_ListCtrl.SubclassDlgItem(IDC_LIST_CONTROL, this); ``` 3. 调用CListCtrl对象的InsertColumn函数添加列头信息。 ``` m_ListCtrl.InsertColumn(0, _T("列1"), LVCFMT_LEFT, 150); m_ListCtrl.InsertColumn(1, _T("列2"), LVCFMT_LEFT, 100); ``` 4. 使用LVS_EX_CHECKBOXES样式来启用List Control的Check Box功能。 ``` m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle() | LVS_EX_CHECKBOXES); ``` 5. 调用CListCtrl对象的InsertItem函数插入行,并使用SetItemText函数设置每行列的文本内容。 ``` int nItemIndex = m_ListCtrl.InsertItem(0, _T("行1")); m_ListCtrl.SetItemText(nItemIndex, 1, _T("列1内容")); ``` 6. 调用CListCtrl对象的SetCheck函数来设置或清除Check Box的选状态。 ``` m_ListCtrl.SetCheck(nItemIndex, TRUE); ``` 7. 如果需要处理Check Box的状态变化事件,可以使用NM_CLICK或NM_DBLCLK等消息处理函数,通过调用CListCtrl对象的GetCheck函数获取Check Box的状态。 ``` void CMyDialog::OnClickListControl(NMHDR *pNMHDR, LRESULT *pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; if ((pNMListView->uNewState & LVIS_STATEIMAGEMASK) == INDEXTOSTATEIMAGEMASK(2)) { // Check Box被选 } else { // Check Box被清除 } *pResult = 0; } ``` 通过以上步骤,就可以在MFC的List Control插入Check Box按钮,并对其状态进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兵哥工控

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值