执行以下步骤获取或设置一个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);
}
编译和测试程序。