执行以下步骤获取或设置一个twain能力:
TwainTutor3.在类之前添加下面的行CTwainTutor3App声明(请记住,您可能必须更改头文件所在的路径):
# include"..\..\..\..\ 包括\ ClassLib \ ltwrappr.h”
单击类视图选项卡。
CTwainTutor3App(空白)构造函数。在后面添加以下行//TODO:在这里添加构造代码:
LBase: LoadLibraries (LT_ALL_LEADLIB);L_TCHAR * pszLicenseFile = L"将此替换为LEADTOOLS许可文件的路径";L_TCHAR * pszDeveloperKey = L"将此替换为开发人员密钥";LSettings:: SetLicenseFile (pszLicenseFile pszDeveloperKey);
创建一个名为Imports.cpp把它放在你的项目文件旁边。
# include“StdAfx.h”#如果定义(WIN64)#其他的# pragma评论(自由,"..\\..\\..\\..\\ Lib \ \ CDLLVC10 \ \ Win32 \ \ Ltwvc_u.lib”)# endif// #如果已定义(WIN64)
单击解决方案资源管理器选项卡。
类之前添加以下类声明CTwainTutor3Dlg类。
类LMyTwain:公共LTwain{LEAD_DECLAREOBJECT (LMyTwain);公共:LMyTwain ();虚拟~ LMyTwain ();虚拟L_INT BitmapCallBack(pBITMAPHANDLE pBitmap);};
单击解决方案资源管理器选项卡。
添加如下类:
LEAD_IMPLEMENTOBJECT (LMyTwain);LMyTwain: LMyTwain (){EnableCallBack(真正的);}LMyTwain:: ~ LMyTwain (){}L_INT LMyTwain::BitmapCallBack(pBITMAPHANDLE pBitmap){//复制获取的位图返回成功;}
单击类视图选项卡。
LMyTwain,以及变量声明把m_MyTwain.离开访问作为公共并点击好吧.TW_CAPABILITY,以及变量声明把m_twCap.离开访问作为公共并点击好吧.L_UINT,以及变量声明把m_uItemValue.离开访问作为公共并点击好吧.OnInitDialog ()函数并在该行后添加以下代码:// TODO:添加额外的初始化
APPLICATIONDATA AppData;memset (appdata 0运算符(APPLICATIONDATA));AppData。hWnd = m_hWnd;AppData。uStructSize =运算符(AppData);lstrcpy (AppData。szManufacturerName _T (领德科技有限公司));lstrcpy (AppData。szAppProductFamily _T (“铅测试应用”));lstrcpy (AppData。szVersionInfo _T (“1.0版本”));lstrcpy (AppData。szAppName _T (“TWAIN测试申请”));m_MyTwain.InitSession (appdata);
WM_DESTROY并选择OnDestroy.在开始括号后添加以下代码{:
m_MyTwain.EndSession ();LBase: UnloadLibraries (LT_ALL_LEADLIB);
单击解决方案资源管理器选项卡。
IDD_TWAINTUTOR3_DIALOG.现在拖放5个按钮,改变它们的属性如下:
| 控制类型 | ID | 标题 |
|---|---|---|
| Button1 | IDC_SELECT_SRC | 选择源 |
| Button2 | IDC_ACQUIRE | 收购 |
| Button3 | IDC_GET_CAPABILITY | 获得能力 |
| Button4 | IDC_SET_CAPABILITY | 设置功能 |
| Button5 | IDC_SET_BRIGHTNESS | 设置亮度 |
从视图菜单,选择其他窗口菜单,然后选择资源视图菜单,然后选择对话框,并选择IDD_TWAINTUTOR3_DIALOG.
双击选择源按钮,并添加以下代码:
m_MyTwain.SelectSource(空);
从视图菜单,选择其他窗口菜单,然后选择资源视图菜单,然后选择对话框,并选择IDD_TWAINTUTOR3_DIALOG
双击收购按钮,并添加以下代码:
BITMAPHANDLE Bitamp;m_MyTwain。收购(&Bitamp,运算符(bitmaphandle), ltwain_show_user_interface, null);
从视图菜单,选择其他窗口菜单,然后选择资源视图菜单,然后选择对话框,并选择IDD_TWAINTUTOR3_DIALOG.
双击获得能力按钮,并添加以下代码:
L_INT nItemType;m_twCap。Cap = ICAP_XFERMECH;m_twCap。ConType = TWON_DONTCARE16;m_twCap。hContainer = NULL;m_MyTwain。GetCapability (&m_twCap LTWAIN_CAPABILITY_GETCURRENT);m_MyTwain。GetNumericContainerItemType (&m_twCap &nItemType);如果(nItemType == TWTY_UINT16)m_MyTwain。GetNumericContainerUINTValue(&m_twCap, 0, &m_uItemValue);其他的AfxMessageBox(文本(“返回的错误项目类型”));
从视图菜单,选择其他窗口菜单,然后选择资源视图菜单,然后选择对话框,并选择IDD_TWAINTUTOR3_DIALOG.
双击设置功能按钮,并添加以下代码:
如果(m_uItemValue != TWSX_NATIVE){TW_CAPABILITY twSetCap;twSetCap。Cap = ICAP_XFERMECH;twSetCap。ConType = TWON_ONEVALUE;m_MyTwain。CreateNumericContainerOneValue(&twSetCap, TWAINNUMERICTYPE_TW_UINT16, TWSX_NATIVE);m_MyTwain。SetCapability (&twSetCap LTWAIN_CAPABILITY_SET);m_MyTwain.FreeContainer (&twSetCap);}其他的AfxMessageBox(文本(“传输模式为本机”));
从视图菜单,选择其他窗口菜单,然后选择资源视图菜单,然后选择对话框,并选择IDD_TWAINTUTOR3_DIALOG.
双击设置亮度按钮,并添加以下代码:
TW_CAPABILITY twBrightnessCap;TW_FIX32 twFix32;pTW_ONEVALUE ptwOneVal;twBrightnessCap。Cap = icap_亮度;twBrightnessCap。ConType = TWON_ONEVALUE;L_INT nRet = m_MyTwain。GetCapability (&twBrightnessCap LTWAIN_CAPABILITY_GETCURRENT);如果(nRet == SUCCESS){ptwOneVal = (pTW_ONEVALUE)GlobalLock(m_twCap.hContainer);memcpy (&twFix32, (无效*) &ptwOneVal - >项目,运算符(TW_FIX32));GlobalUnlock (twBrightnessCap.hContainer);GlobalFree (twBrightnessCap.hContainer);twBrightnessCap。hContainer = NULL;如果(twFix32。整个!= 128){twFix32。整体= 128;twFix32。Frac = 0;}twBrightnessCap。Cap = icap_亮度;twBrightnessCap。ConType = TWON_ONEVALUE;twBrightnessCap。hContainer = GlobalAlloc(GHND,运算符(TW_ONEVALUE) +运算符(TW_FIX32));ptwOneVal = (pTW_ONEVALUE)GlobalLock(m_twCap.hContainer);ptwOneVal->ItemType = TWTY_FIX32;memcpy ((无效*) &ptwOneVal - >项目,&twFix32,运算符(TW_FIX32));GlobalUnlock (twBrightnessCap.hContainer);m_MyTwain。SetCapability (&twBrightnessCap LTWAIN_CAPABILITY_SET);}
编译和测试程序。