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. vue配置环境参考

    转  https://www.cnblogs.com/tu-0718/p/7521099.html 转 https://www.jianshu.com/p/1626b8643676 $ vue ini ...

  2. Verilog代码和FPGA硬件的映射关系(二)

    大家可能会有这样的疑问,我们编写的Verilog代码最终会在FPGA上以怎样的映射关系来实现功能呢?我们以一个最简单的组合逻辑与门为例来向大家说明.RTL代码如下所示: //------------- ...

  3. Golang源码学习:调度逻辑(三)工作线程的执行流程与调度循环

    本文内容主要分为三部分: main goroutine 的调度运行 非 main goroutine 的退出流程 工作线程的执行流程与调度循环. main goroutine 的调度运行 runtim ...

  4. 使用Vue+Django+Ant Design做一个留言评论模块

    使用Vue+Django+Ant Design做一个留言评论模块 1.总览 留言的展示参考网络上参见的格式,如掘金社区: 一共分为两层,子孙留言都在第二层中 最终效果如下: 接下是数据库的表结构,如下 ...

  5. 题解 P5329 【[SNOI2019]字符串】

    用栈的做法来水一发. 首先我们有一个暴力的做法,枚举每个被删除的字符,然后排序输出,时间复杂度:$ O ( N \times N \times LogN ) $ . 然后我们观察一下数据,发现有一个数 ...

  6. Java并发编程 (五) 线程安全性

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.安全发布对象-发布与逸出 1.发布与逸出定义 发布对象 : 使一个对象能够被当前范围之外的代码所使用 ...

  7. 8.0 以上版本 mySQL数据库导致的命令行可连接,NaviCat不可连接的问题

    错误代码: client does not support authentication 原因: 没有开启Mysql的远程连接配置 解决办法: 1 使用命令行进入数据库 C:\Users\wushao ...

  8. Java实现 蓝桥杯 算法训练 数字三角形

    算法训练 数字三角形 时间限制:1.0s 内存限制:256.0MB 问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每 ...

  9. Java实现 洛谷 P1089 津津的储蓄计划

    import java.util.*; public class Main { public static void main(String[] args) { Scanner sc=new Scan ...

  10. java算法集训结果填空题练习1

    1 空瓶换汽水 浪费可耻,节约光荣.饮料店节日搞活动:不用付费,用3个某饮料的空瓶就可以换一瓶该饮料.刚好小明前两天买了2瓶该饮料喝完了,瓶子还在.他耍了个小聪明,向老板借了一个空瓶,凑成3个,换了一 ...