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. [安全] HTTPS的理解

    一.概述 在下面的章节,我们要搞明白以下几个问题: HTTP和HTTPS的区别,为什么要使用HTTPS HTTPS如何解决加密问题 HTTPS如何避免中间人攻击 CA证书是什么 CA证书是如何申请和颁 ...

  2. 剑指Offer之跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 解法1:递归解法 public int JumpFloor(int t ...

  3. DDD之1微服务设计为什么选择DDD

    背景 名词解释 如果你的团队目前正是构建微服务架构风格的软件系统,问自己两个问题? 软件架构演进 软件架构大致经历了从单机架构,集中式架构,分布式微服架构,程序的层次图如下所示. 单机架构 特点如下: ...

  4. 关于String是值传递还是引用传递

    public class Itv { static String ss = "kkkkkk"; static String ss1 = new String("kkkkk ...

  5. 如何开启远程桌面连接功能?windows的远程桌面连接功能使用步骤

    由于远程桌面的诞生,为电脑工作者提供了极大的便利.首先,推荐1款比较适合服务器管理的远程桌面: 可以管理1000+服务器/vps的远程桌面:IIS7远程桌面管理 开启远程桌面功能步骤: 1.右键点击电 ...

  6. python通用数据库操作工具 pydbclib

    pydbclib是一个通用的python关系型数据库操作工具包,使用统一的接口操作各种关系型数据库(如 oracle.mysql.postgres.hive.impala等)进行增删改查,它是对各个p ...

  7. 总结了一下css的部分基础知识点。---css学习笔记01

    一. css基础 1. 什么是css 层叠样式表:层叠 2. css的三种使用方式 style 属性 --> <div style="css属性值"></d ...

  8. 【Linux】ntp服务-时间同步

    ntp简易安装与时间同步 yum -y install ntp ntpdate //安装ntp服务 ntpdate cn.pool.ntp.org //更新时间 hwclock --systohc / ...

  9. Jmeter 样例 之 JDBC请求-操作MySql数据库

    准备: 1.MySql的驱动jar包:mysql-connector-java-5.1.28.jar, 2.jmeter安装目录中修改编码格式:\bin\jmeter.properties   :sa ...

  10. Java实现 LeetCode 822 翻转卡片游戏(暴力)

    822. 翻转卡片游戏 在桌子上有 N 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样). 我们可以先翻转任意张卡片,然后选择其中一张卡片. 如果选中的那张卡片背面的数字 X ...