📄 my850page.cpp
字号:
#include "My850Page.h"
#define MSG_BARCODE UMSG_TYPE_USR + 100
#define CODE_LEN 28
#define RECORD_LEN (CODE_LEN + 2)
void BarCodeProcess(BARCODEINFO *p);
static UMSG g_msg;
void BarCodeProcess(BARCODEINFO *p)
{
memset(&g_msg, 0, sizeof(UMSG));
g_msg.nMessage = MSG_BARCODE;
g_msg.nParam = p->code_length;
g_msg.nData = (int)p->code_buf;
g_msg.pDataEx = (void *)p->code_type;
UPostMessage(&g_msg);
}
CMy850Page::CMy850Page()
{
}
CMy850Page::~CMy850Page()
{
}
void CMy850Page::OnInit(void)
{
CUPage::OnInit();
RECT r;
r.left = 20;
r.right = WIN_WIDTH - 20;
r.top = 30;
r.bottom = 45;
m_lFileCnt.Create(this, "File Content:", 0, &r);
r.top = 60;
r.bottom = 75;
m_eFileCnt.Create(this, NULL, 0, &r);
m_eFileCnt.SetMaxInputLen(CODE_LEN);
//open file
ZFILE *fp;
fp = zfopen("FileAccess.txt", "r+");
if (fp == NULL)
fp = zfopen("FileAccess.txt", "w+");
zfclose(fp);
m_fFile.Open("FileAccess.txt", RECORD_LEN);
// open scanner, if failed and quit
if(m_scanner.UOpenScanner() < 0)
{
printf("open scanner fail\n");
USleep(1000);
PostMessage(this, UM_QUIT);
}
//register callback function for receiveing code data
m_hscan = m_scanner.URegScannerCallBack(BarCodeProcess, 100);
if(!m_hscan)
{
CUMsgBox box("Register callback fail!", MSGBOX_NORMAL);
box.DoModal();
PostMessage(this, UM_QUIT);
}
}
void CMy850Page::OnOK(void)
{
//write data to file
FileAccess(m_eFileCnt.GetTextPtr());
}
void CMy850Page::OnUserMsg(UMSG *pMsg)
{
if(pMsg->nMessage == MSG_BARCODE)
{
m_eFileCnt.SetText((char *)pMsg->nData);
PostMessage(this, UM_PAINT);
}
}
void CMy850Page::OnQuit(void)
{
if(m_hscan)
m_scanner.UUnRegScannerCallBack(m_hscan);
m_scanner.UCloseScanner();
m_fFile.Close();
CUPage::OnQuit();
}
void CMy850Page::FileAccess(const char *cFileCnt)
{
//change record format
char cInsertBuff[RECORD_LEN];
memset(cInsertBuff, 0, RECORD_LEN);
sprintf(cInsertBuff, "%s", cFileCnt);
sprintf(cInsertBuff + CODE_LEN, "\r\n");
//insert data
m_fFile.InsertRecord((void *)cInsertBuff, 0, RECORD_LEN);
CUMsgBox box("Success accessing the file!");
box.DoModal();
//refresh the m_eFileCnt
m_eFileCnt.SetText("");
m_eFileCnt.Show();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -