CString PrinterFun::GetPrinterName(int nId)
{
CString strName;
switch( nId ){
case PRN_CP8000D:
strName.Format("CP8000D/DW");
break;
case PRN_CP770D:
strName.Format("CP770D/DW");
break;
case PRN_CP900D:
strName.Format("CP900D/DW");
break;
case PRN_CP980D:
strName.Format("CP980D/DW");
break;
case PRN_CP3020D:
strName.Format("CP3020D");
break;
case PRN_CP900DID:
strName.Format("CP900DW(ID)");
break;
case PRN_CP9000D:
strName = _T("CP9000D/DW");
break;
case PRN_CP9000AM:
strName = _T("CP9000D(AM)");
break;
case PRN_CP9500D:
strName = _T("CP9500D/DW");
break;
case PRN_CP9550D:
strName = _T("CP9550D/DW");
break;
case PRN_CP9550DS:
strName = _T("CP9550DS");
break;
case PRN_CP3020DA:
strName = _T("CP3020DA");
break;
case PRN_CP9600D:
strName = _T("CP9600D/DW");
break;
case PRN_CP9800D:
strName = _T("CP9800D/DW");
break;
case PRN_NotSupported:
strName = _T("Unsupported");
break;
default:
strName = _T("Unknown DEVICE");
break;
}
return strName;
}
-------------------------------------------------------------------------------
VC++中测试:
void CTestDlg::OnBTSearchPrinter()
{
// TODO: Add your control notification handler code here
UpdateData( TRUE );
if( m_pidInfo )
{
m_curPrnIdx = m_ListPrinter.GetCurSel();
}else{
m_curPrnIdx = 0;
}
PrinterFun fun;
int nId;
CString a = fun.GetPrinterName(nId);
CString str;
str.Format("%s", a);
m_ListPrinter.AddString(str);
UpdateData( FALSE );
}
------------------------------------------------------------------------------------
我想单击此按钮获取到打印机名称显示到组合框中!程序运行编译没有错误!
运行的时候显示的值是一个很大的数字!这个数字多次获取不发生变化!
请教下该如何修改测试代码!
{
CString strName;
switch( nId ){
case PRN_CP8000D:
strName.Format("CP8000D/DW");
break;
case PRN_CP770D:
strName.Format("CP770D/DW");
break;
case PRN_CP900D:
strName.Format("CP900D/DW");
break;
case PRN_CP980D:
strName.Format("CP980D/DW");
break;
case PRN_CP3020D:
strName.Format("CP3020D");
break;
case PRN_CP900DID:
strName.Format("CP900DW(ID)");
break;
case PRN_CP9000D:
strName = _T("CP9000D/DW");
break;
case PRN_CP9000AM:
strName = _T("CP9000D(AM)");
break;
case PRN_CP9500D:
strName = _T("CP9500D/DW");
break;
case PRN_CP9550D:
strName = _T("CP9550D/DW");
break;
case PRN_CP9550DS:
strName = _T("CP9550DS");
break;
case PRN_CP3020DA:
strName = _T("CP3020DA");
break;
case PRN_CP9600D:
strName = _T("CP9600D/DW");
break;
case PRN_CP9800D:
strName = _T("CP9800D/DW");
break;
case PRN_NotSupported:
strName = _T("Unsupported");
break;
default:
strName = _T("Unknown DEVICE");
break;
}
return strName;
}
-------------------------------------------------------------------------------
VC++中测试:
void CTestDlg::OnBTSearchPrinter()
{
// TODO: Add your control notification handler code here
UpdateData( TRUE );
if( m_pidInfo )
{
m_curPrnIdx = m_ListPrinter.GetCurSel();
}else{
m_curPrnIdx = 0;
}
PrinterFun fun;
int nId;
CString a = fun.GetPrinterName(nId);
CString str;
str.Format("%s", a);
m_ListPrinter.AddString(str);
UpdateData( FALSE );
}
------------------------------------------------------------------------------------
我想单击此按钮获取到打印机名称显示到组合框中!程序运行编译没有错误!
运行的时候显示的值是一个很大的数字!这个数字多次获取不发生变化!
请教下该如何修改测试代码!
解决方案 »
- CEdit类里有没有直接能限制输入数字的函数?
- 运行php代码
- 哪位有<<windows 程序设计>><<c++ primer>>和C#.net之类的电子书籍或免费下载地址?万分感谢!
- 如何在对话编辑框中只输入数字和小数点???
- 创建一个文件打开对话框,如何使之每次打开时都处于上次打开文件的位置?
- SOS!请问谁有用纯C++写的telnet的服务器和客户端的源代码。(100分求)
- 过来看看,为什么鼠标按下的WM_LBUTTONDOWN 消息不响应?
- 这句什么意思(立刻给分!)
- 怎样得到一个邮件服务器上的所有账号。?
- 帮我一个小忙!我需要一个MFC42D.DLL
- CMainfrm与view数据的传递问题(单文档!高手救命啊)
- 多线程传参问题
m_ListPrinter.AddString(str);
------------------------------------------
直接m_ListPrinter.AddString(a);
default:
strName = _T("Unknown DEVICE");
break;
我脑子突然木了nId如何初始化!
知道的还望告之!~
enum{PRN_CP8000D,PRN_CP770D,PRN_CP900D,PRN_CP980D} ;
int nID=PRN_CP8000D;for(iID;nID<PRN_CP980D;nID++)
{
CString strPrintername = fun.GetPrinterName(nId);
m_ListPrinter.AddString(strPrintername );
}
每局类型实际上是整形,呵呵!
我的测试Test中
void CTestDlg::OnBTSearchPrinter()
{
// TODO: Add your control notification handler code here
UpdateData( TRUE );
PrinterFun fun;
CString a = fun.SetPrinterList();
CString str;
str.Format("%d", a);
m_ListPrinter.AddString(str);
UpdateData( FALSE );
}
-------------------------------------------------------------------------
SetPrinterList();是我在DLL中导出的函数!
类型void
现在我就想把这个函数中得到的信息显示到对话框
--------------------------------------------------
TestDlg.cpp
E:\PrinterDll_20080423\Test\TestDlg.cpp(183) : error C2440: 'initializing' : cannot convert from 'void' to 'class CString'
Expressions of type void cannot be converted to other types
Error executing cl.exe.
Creating browse info file...
------------------------------------------------------------------------------
懂的帮忙改一下!~不明白的麻烦不要跟贴了!谢谢大家了!
1. PrinterFun fun; //这是一个对象,调用它的SetPrinterList.应该导出这个类吧!
CString a = fun.SetPrinterList();
2. SetPrinterList();是我在DLL中导出的函数!
类型void ,你明明返回值是CString 类型,确定义void类型,不错可能吗?
BOOL PrinterFun::GetPrinterName(int nId, CHAR Buffer[], DWORD dwSize)
{
switch( nId ){
case PRN_CP8000D:
strcpy(Buffer, "CP8000D/DW");
return TRUE;default:
return FALSE
}VC++中测试:
void CTestDlg::OnBTSearchPrinter()
{
// TODO: Add your control notification handler code here
UpdateData( TRUE );
if( m_pidInfo )
{
m_curPrnIdx = m_ListPrinter.GetCurSel();
}else{
m_curPrnIdx = 0;
}
PrinterFun fun;
int nId;
CHAR Buffer[100] = {0};
BOOL b = fun.GetPrinterName(nId, Buffer, 100);
...
UpdateData( FALSE );
}