m_strModel.LoadString(IDS_MODEL_STRING); //IDS_MODEL_STRING,字符串控件的ID,资源视图-String Table里面设置
m_strSource.LoadString(IDS_SOURCE_STRING);//IDS_SOURCE_STRING
m_strWaferlot.LoadString(IDS_WAFER_LOT_STRING);
m_strWelding.LoadString(IDS_WELDING_STRING);
m_strWaferID.LoadString(IDS_WAFER_ID_STRING);

// PrintDlg.cpp : implementation file
// #include "stdafx.h"
#include "smw200.h"
#include "PrintDlg.h"
#include "Main.h"
#include <fstream> #ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif /////////////////////////////////////////////////////////////////////////////
// CPrintDlg dialog
const CString TEMPLATE_PATH = _T("C:\\Program Files\\Brother bPAC3 SDK\\Templates\\"); CPrintDlg::CPrintDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPrintDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPrintDlg)
m_strModel = _T("");
m_strSource = _T("");
m_strWaferlot = _T("");
m_strWelding = _T("");
m_strWaferID = _T("");
//}}AFX_DATA_INIT
} void CPrintDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPrintDlg)
DDX_Control(pDX, IDC_COMBO_TEMPLATE, m_cbTemplate);
DDX_Text(pDX, IDC_EDIT_MODEL, m_strModel);
DDX_Text(pDX, IDC_EDIT_SOURCE, m_strSource);
DDX_Text(pDX, IDC_EDIT_WAFER_LOT, m_strWaferlot);
DDX_Text(pDX, IDC_EDIT_WELDING, m_strWelding);
DDX_Text(pDX, IDC_EDIT_WAFER_ID, m_strWaferID);
//}}AFX_DATA_MAP
} BEGIN_MESSAGE_MAP(CPrintDlg, CDialog)
//{{AFX_MSG_MAP(CPrintDlg)
ON_BN_CLICKED(IDC_BTN_PRINT, OnBtnPrint)
ON_BN_CLICKED(IDC_BTN_SEARCH, OnBtnSearch)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP() /////////////////////////////////////////////////////////////////////////////
// CPrintDlg message handlers BOOL CPrintDlg::OnInitDialog()
{ CRect rectWnd;
GetWindowRect(rectWnd);
SetWindowPos(NULL, rectWnd.Width()/, rectWnd.Height()/,rectWnd.Width(),rectWnd.Height(),SWP_NOZORDER | SWP_NOACTIVATE); if (language == ENGLISH)
{
SetWindowText("Print Label");
SetDlgItemText(IDC_STATIC_TEMPLATE,"Template :");
SetDlgItemText(IDC_STATIC_WAFER_ID,"Wafer ID :");
SetDlgItemText(IDC_STATIC_MODEL,"Wafer Model :");
SetDlgItemText(IDC_STATIC_SOURCE,"Wafer Source :");
SetDlgItemText(IDC_STATIC_WAFER_LOT,"Wafer Lot # :");
SetDlgItemText(IDC_STATIC_WELDING,"Bonding Doc :"); SetDlgItemText(IDC_BTN_SEARCH,"Search Label");
SetDlgItemText(IDC_BTN_PRINT,"Print Label");
SetDlgItemText(IDOK,"OK");
SetDlgItemText(IDCANCEL,"Cancel");
}
else
{
SetWindowText("打印标签");
SetDlgItemText(IDC_STATIC_TEMPLATE,"模板选择 :");
SetDlgItemText(IDC_STATIC_WAFER_ID,"晶圆识别符 :");
SetDlgItemText(IDC_STATIC_MODEL,"晶圆型号 :");
SetDlgItemText(IDC_STATIC_SOURCE,"晶圆来源 :");
SetDlgItemText(IDC_STATIC_WAFER_LOT,"晶圆标识符 :");
SetDlgItemText(IDC_STATIC_WELDING,"焊接图号 :"); SetDlgItemText(IDC_BTN_SEARCH,"查询标签");
SetDlgItemText(IDC_BTN_PRINT,"打印标签");
SetDlgItemText(IDOK,"确定");
SetDlgItemText(IDCANCEL,"取消"); }
// Set Paremeter
m_strModel.LoadString(IDS_MODEL_STRING);
m_strSource.LoadString(IDS_SOURCE_STRING);
m_strWaferlot.LoadString(IDS_WAFER_LOT_STRING);
m_strWelding.LoadString(IDS_WELDING_STRING);
m_strWaferID.LoadString(IDS_WAFER_ID_STRING);
CDialog::OnInitDialog(); // TODO: Add extra initialization here m_cbTemplate.SetCurSel();
StartClickNTypeKeyboard(); return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
} void print_label()
{
if(!print_flag) return;
print_flag = false;
::CoInitialize(NULL);//初始化COM库
CString strPath = _T("C:\\Program Files\\Brother bPAC3 SDK\\Templates\\APS200labelplate1.lbx"); if (CaliPrintLabelFlag)
{
waferchars[number_print] = _T("LMBT3906LT1G\nY6027PA\nS5G34442-185-01\n88ASB00980L");
waferqrcode[number_print] = _T("LMBT3906LT1G^Y6027PA^88ASB00980L^S5G34442-185-01"); }
else
{
waferchars[number_print] = wafermodel[number_print] + '\n' + wafersource[number_print] + '\n' + waferlot[number_print] + '\n' + waferwelding[number_print];
waferqrcode[number_print] = wafermodel[number_print] + '^' + wafersource[number_print] + '^' + waferwelding[number_print] + '^' + waferlot[number_print] ;
} print(strPath,waferchars[number_print],waferqrcode[number_print]); ::CoUninitialize();
print_end = false; // log_print_message(); } void print(CString path,CString printChars,CString printQRcode)
{ try
{
IDocumentPtr pObjDoc(__uuidof(Document));
if (pObjDoc->Open(path.AllocSysString()))
{
pObjDoc->GetObject(_bstr_t(_T("objWaferModel")))->PutText(printChars.AllocSysString());
pObjDoc->GetObject(_bstr_t(_T("objWaferQRcode")))->PutText(printQRcode.AllocSysString()); pObjDoc->SetMediaById(pObjDoc->Printer->GetMediaId(), true);
pObjDoc->StartPrint(_bstr_t(_T("")), bpac::bpoDefault);
pObjDoc->PrintOut(, bpac::bpoDefault);
pObjDoc->EndPrint();
pObjDoc->Close();
}
}
catch (_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
remaining_label_life--;
itoa(remaining_label_life, LRLText, );
} void log_print_message()
{
using namespace std;
std::string filename1 = "print.txt";
std::ofstream outfile1( filename1.c_str(), std::ios_base::app ); if( outfile1 )
{
outfile1 << "chars " << waferchars[number_print] << " qrcode " << waferqrcode[number_print] << std::endl;
} if (outfile1)
{
outfile1.close();
}
} void CPrintDlg::OnBtnPrint()
{
UpdateData(TRUE); CString strPath,strWaferChars,strWaferQRcode; strPath = TEMPLATE_PATH;
if (m_cbTemplate.GetCurSel() <= )
strPath += _T("APS200labelplate1.lbx");
else
strPath += _T("APS200labelplate2.lbx"); strWaferChars = m_strModel + '\n' + m_strSource + '\n' + m_strWaferlot + '\n' + m_strWelding;
strWaferQRcode = m_strModel + '^' + m_strSource + '^' + m_strWelding + '^' + m_strWaferlot; print(strPath,strWaferChars,strWaferQRcode);
} void CPrintDlg::OnBtnSearch()
{
// TODO: Add your control notification handler code here
if (!mes_success_flag)
{
AfxMessageBox("数据库未成功连接,请检查网络,自动配置IP,并重启软件进行连接!",MB_ICONSTOP | MB_OK | MB_TOPMOST);
return;
} UpdateData(TRUE);
m_strModel = "";
m_strWaferlot = "";
m_strSource = "";
m_strWelding = ""; searchmes(m_strWaferID); m_strWaferlot = waferlot[number_ocr];
m_strModel = wafermodel[number_ocr];
m_strSource = wafersource[number_ocr];
m_strWelding = waferwelding[number_ocr]; UpdateData(FALSE); } void CPrintDlg::OnDestroy()
{
CDialog::OnDestroy();
CloseKeyboard(); // TODO: Add your message handler code here }

兄弟打印机MFC代码示范的更多相关文章

  1. MFC基于CAsyncSocket套接字客户端代码示范

    MFC基于CAsyncSocket套接字客户端代码示范 https://blog.csdn.net/txwtech/article/details/93016190

  2. 关于AJAX 的交互模型、交互流程及代码示范

    AJAX  = 异步JavaScript + XML. 它是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况 ...

  3. c++ UDP套接字服务器端代码示范

    c++ UDP套接字服务器端代码示范 #include<winsock2.h> //包含头文件 #include<stdio.h> #include<windows.h& ...

  4. cc28c_demo.cpp,派生类的构造函数和析构函数-代码示范3

    cc28c_demo.cpp,派生类的构造函数和析构函数-代码示范3 //派生类的构造函数和析构函数//派生类的构造函数(执行步骤)//--执行基类的构造函数//--执行成员对象的构造函数//--执行 ...

  5. c++ cc24a_demo //转换函数,用来做转换操作符,int()括号里面必须是空的,必须定义为const,代码示范

    c++ cc24a_demo //转换函数,用来做转换操作符,int()括号里面必须是空的,必须定义为const,代码示范 #include <iostream> #include < ...

  6. cc22a_demo_c++重载自增自减操作符-代码示范

    cc22a_demo_c++重载自增自减操作符-代码示范 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespa ...

  7. 套接字TCP控制台服务器程序代码示范

    套接字TCP控制台服务器程序代码示范  https://blog.csdn.net/txwtech/article/details/90344081

  8. upd套接字服务器与客户端交互C++代码示范

    upd套接字服务器与客户端交互C++代码示范 // vc2_2_4UDPserver_Txwtech.cpp : 定义控制台应用程序的入口点. //服务器端 #include "StdAfx ...

  9. c++ UDP套接字客服端代码示范

    c++ UDP套接字客服端代码示范 #include<winsock2.h> //包含头文件 #include<stdio.h> #include<windows.h&g ...

随机推荐

  1. GPG配置、命令、实例与apt-key密钥测试

    环境 Ubuntu18.04 gpg version 2.24 参考文档 GnuPG (简体中文) 例子文档 阮一峰 key Management 简介 他人用公钥来加密,自己用私钥来解密 自己用私钥 ...

  2. Linux学习(一):常用命令

    init 0:关机 init 3:命令行模式 init 5:图形界面模式 init 6:重启 shutdown -h now:立马关机 ls:文件列表 参数:-l 详细列表 cd:切换目录 用法实例: ...

  3. eatwhatApp开发实战(七)

    之前我们为app添加了读取本地数据的功能和删除的功能.本次我们来将listview上item项的触控修改为item项上单一控件的触控事件.用item项上的button来实现删除数据. 先上布局: &l ...

  4. java内部类简单用法

    package innerClass; /** * 特点 * 1:增强封装性,通过把内部类隐藏在外部类的里面,使得其他类不能访问外部类. * 2:增强可维护性. * 3:内部类可以访问外部的成员. * ...

  5. Springboot 内置tomcat 基本配置收集整理

    配置一: server:# tomcat 配置  tomcat:    # 接收队列长度    accept-count: 1000    # 最小空闲线程数    min-spare-threads ...

  6. 关于安装Linux-centOS时遇到的问题

    1.新建虚拟机实例后倒入centos镜像开机报错.提示不支持 64 位.... 重新下载虚拟机安装包,重新安装. 2.安装到检查光盘镜像的下一步,vm is nor support (or ... c ...

  7. 00016-layui 动态加载菜单 laytpl

    <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ i ...

  8. Hadoop Yarn REST API未授权漏洞利用

    Hadoop Yarn REST API未授权漏洞利用 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一 ...

  9. Spring boot Sample 004之spring-boot-configuration-yaml

    一.环境 1.1.Idea 2020.1 1.2.JDK 1.8 二.目的 通过yaml文件配置spring boot 属性文件 三.步骤 3.1.点击File -> New Project - ...

  10. (Java实现)洛谷 P1164 小A点菜

    题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:"随便点". 题目描述 不过ui ...