兄弟打印机MFC代码示范
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代码示范的更多相关文章
- MFC基于CAsyncSocket套接字客户端代码示范
MFC基于CAsyncSocket套接字客户端代码示范 https://blog.csdn.net/txwtech/article/details/93016190
- 关于AJAX 的交互模型、交互流程及代码示范
AJAX = 异步JavaScript + XML. 它是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况 ...
- c++ UDP套接字服务器端代码示范
c++ UDP套接字服务器端代码示范 #include<winsock2.h> //包含头文件 #include<stdio.h> #include<windows.h& ...
- cc28c_demo.cpp,派生类的构造函数和析构函数-代码示范3
cc28c_demo.cpp,派生类的构造函数和析构函数-代码示范3 //派生类的构造函数和析构函数//派生类的构造函数(执行步骤)//--执行基类的构造函数//--执行成员对象的构造函数//--执行 ...
- c++ cc24a_demo //转换函数,用来做转换操作符,int()括号里面必须是空的,必须定义为const,代码示范
c++ cc24a_demo //转换函数,用来做转换操作符,int()括号里面必须是空的,必须定义为const,代码示范 #include <iostream> #include < ...
- cc22a_demo_c++重载自增自减操作符-代码示范
cc22a_demo_c++重载自增自减操作符-代码示范 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespa ...
- 套接字TCP控制台服务器程序代码示范
套接字TCP控制台服务器程序代码示范 https://blog.csdn.net/txwtech/article/details/90344081
- upd套接字服务器与客户端交互C++代码示范
upd套接字服务器与客户端交互C++代码示范 // vc2_2_4UDPserver_Txwtech.cpp : 定义控制台应用程序的入口点. //服务器端 #include "StdAfx ...
- c++ UDP套接字客服端代码示范
c++ UDP套接字客服端代码示范 #include<winsock2.h> //包含头文件 #include<stdio.h> #include<windows.h&g ...
随机推荐
- 如何在Teamcenter中使用PMI?
1 .什么是PMI 在设计制造领域,PMI指的是产品制造信息(Productand Manufacturing Information),其目的在于在三维环境下,将制造信息从设计部门传递到制造部门.其 ...
- Oracle 中同义词使用
一.数据库对象: 模式对象: 数据库对象是逻辑结构的集合,最基本的数据库对象是表; 其他对象包括:create增.drop删.改alter 同义词.序列.视图.索引 1.同义词: ①. 现有对象的一个 ...
- Kubernetes Dashborad 搭建
需求 基于网页查看Kubernetes 用户管理界面 安装步骤 在控制面板节点部署dashborad kubectl apply -f https://raw.githubusercontent.co ...
- Mycat-多实例的搭建
1. 基础环境准备1.1 环境准备:两台虚拟机 db01 db02每台创建四个mysql实例:3307 3308 3309 33101.2 删除历史环境:pkill mysqldrm -rf /dat ...
- 8.Hash集合类型操作使用
数据类型Hash (1)介绍 hash数据类型存储的数据与mysql数据库中存储的一条记录极为相似 Redis本身就类似于Hash的存储结构,分为key-value键值对,实际上它的Hash数据就好像 ...
- [PHP学习教程 - 网络]002.获取网页内容(URL Content)
引言:获取网页内容是我们实现网页操作的基本之基本,今天这一讲,我们和大家讲一下基本请求网页内容的几种方法. 我们似乎每天都要做这样一件事情,打开一个浏览器,输入网址,回车,一个空白的页面顿时有了东西, ...
- 485通信——驱动 MX64/MX28 舵机
背景:在使用STM32调试MX64舵机时,由于控制该舵机需要采用RS485通信协议,因此需要从单片机的串口经过一个TTL转485通信的模块再与舵机进行通信. 485通信特点: 485通信采用差分信号: ...
- 02 . Redis哨兵
Redis高可用概述 在 Web 服务器中,高可用 是指服务器可以 正常访问 的时间,衡量的标准是在 多长时间 内可以提供正常服务(99.9%.99.99%.99.999% 等等).在 Redis ...
- spring boot 整合 poi 导出excel
一. 第一种方式 1.首先从中央仓库中导入架包Poi3.14以及Poi-ooxml3.14. <dependency> <groupId>org.apache.poi</ ...
- Rocket - tilelink - RegisterRouter
https://mp.weixin.qq.com/s/DaJhf7hEoWsEi_AjwSrOfA 简单介绍RegisterRouter的实现. 1. 基本介绍 实现挂在Tile ...