原創(chuàng)|使用教程|編輯:郝浩|2013-09-26 11:11:35.000|閱讀 225 次
概述:在提供了容器支持如Visual Basic或Visual C++的開發(fā)環(huán)境中,barcode Xpress可以被作為一個ActiveX控件使用。在Visual C++中如何將Barcode Xpress作為一個導入的COM 對象使用呢?下面來具體的討論一下。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在前面的文章《Barcode Xpress 教程:如何在Visual C++ 中作為COM 對象使用》的前兩篇文章中,對于在Visual C++中如何將Barcode Xpress作為一個導入的COM 對象使用的給出了部分示例代碼,下面將給出最后的示例代碼。
五、使用BarcodeXpress的COM對象來設置屬性和調(diào)用方法
BarcodeXpress COM對象實例創(chuàng)建之后,這個對象可以用于設置BarcodeXpress屬性和調(diào)用BarcodeXpress方法。在ReadBarcodeFromDIB項目中,會在OnDetectButton函數(shù)中像下面這樣子說明。當用戶點擊Recognized Barcode 按鈕時就會調(diào)用這個函數(shù)。
void CReadBarcodeFromDIBDlg::OnDetectButton() { // TODO: Add your control notification handler code here // Set barcode classification type based on selected radio button switch(m_selection) { case 0: { barcodetype = 0; //1D break; } case 1: { barcodetype = 524288; //Patch break; } case 2: { barcodetype = 0x4000000; //OneCode break; } case 3: { barcodetype = 2097152; //PDF break; } case 4: { barcodetype = 4194304; //DataMatrix break; } case 5: { barcodetype = 0x8000000; //Royal Post break; } case 6: { barcodetype = 1048576; //Post net break; } case 7: { barcodetype = 0x2000000; //QR break; } case 8: { barcodetype = 0x10000000; //Aus break; } } m_pBarcodeXpress->BarcodeType = barcodetype; m_pBarcodeXpress->ImageSource = BC_ImageSourceDIB; m_pBarcodeXpress->hDIB = m_pImagXpress->CopyDIB(); m_pBarcodeXpress->AnalyzeBC(0,0,0,0); int numBC = m_pBarcodeXpress->NumBarcodes; CString bcName; CString bcResult; CString result; CString strBarcodeInformation; if ((m_pBarcodeXpress->SSError == 0) & (m_pBarcodeXpress->NumBarcodes > 0)) { int i; for (i = 0 ; i < numBC ; i++) { m_pBarcodeXpress->GetBarcode(i); bcName = (BSTR) m_pBarcodeXpress->BarcodeCodeName; bcResult = (BSTR) m_pBarcodeXpress->BarcodeResult; strBarcodeInformation.FormatMessage(szBarcodeInfoFormat, i, bcResult, bcName); result += strBarcodeInformation; } MessageBox(result,"Barcode Result", MB_OK); } else { if (m_pBarcodeXpress->SSError != 0) { MessageBox("Error #" + m_pBarcodeXpress->SSError,"Error",MB_OK); } else { MessageBox("No barcodes found","Barcode Result", MB_OK); } } //Must Free the DIB passed into the Analyze method to avoid memory issues GlobalFree((HGLOBAL)m_pBarcodeXpress->hDIB); }
六、刪除BarcodeXpress COM對象
當不再需要BarcodeXpress COM對象時,就必須刪除它。通常在應用程序退出之前刪除這個對象。在ReadBarcodeFromDIB項目中,這個COM對象可以像下面這樣刪除。
BOOL CReadBarcodeFromDIBDlg::DestroyWindow() { // TODO: Add your specialized code here and/or call the base class CDialog::OnDestroy(); if (m_pImagXpress) { m_pImagXpress = NULL; if (m_ppCImagXpress) { delete m_ppCImagXpress; } } if (m_pBarcodeXpress) { m_pBarcodeXpress = NULL; if (m_ppIBarcodeXpress) { delete m_ppIBarcodeXpress; } } return CDialog::DestroyWindow(); }
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件