CVI2017 实现 windows 打印功能, 或者用 windows C 变成 搞个 动态库调用也行, 或者直接 windows C 调用
12条回答 默认 最新
关注 获得0.45元问题酬金 引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。
要在CVI中实现Windows打印功能,可以按照以下步骤进行操作:
- 创建一个新的CVI项目。
- 在项目中添加一个按钮控件,用于触发打印动作。这可以通过在资源编辑器中拖放一个按钮控件来完成。
- 在按钮的回调函数中添加以下代码:
#include <windows.h> #include <winspool.h> void Print() { DOCINFO di; HANDLE printer; BOOL success; printer = (HANDLE)NULL; // 打开默认打印机 success = OpenPrinter(NULL, &printer, NULL); if (!success) return; // 设置文档信息 ZeroMemory(&di, sizeof(di)); di.cbSize = sizeof(DOCINFO); di.lpszDocName = "My Document"; di.lpszOutput = NULL; di.lpszDatatype = NULL; di.fwType = 0; // 开始打印文档 success = StartDocPrinter(printer, 1, (LPBYTE)&di); if (!success) { ClosePrinter(printer); return; } // 向打印机发送数据 success = StartPagePrinter(printer); if (!success) { EndDocPrinter(printer); ClosePrinter(printer); return; } // TODO: 这里写入要打印的数据 // 结束打印页 success = EndPagePrinter(printer); if (!success) { EndDocPrinter(printer); ClosePrinter(printer); return; } // 结束打印文档 success = EndDocPrinter(printer); if (!success) { ClosePrinter(printer); return; } // 关闭打印机 ClosePrinter(printer); return; } int CVICALLBACK ButtonCallback(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { if (event == EVENT_COMMIT) { Print(); } return 0; } int main(int argc, char *argv[]) { // 创建主窗口并运行 if (InitCVIRTE(argc, argv, 0) == 0) return -1; /* out of memory */ int panel = LoadPanel(0, "YourPanel.uir", PANEL); // 替换为你的UIR文件名和主面板名称 DisplayPanel(panel); RunUserInterface(); DiscardPanel(panel); // 退出 CVI return 0; }
- 保存并构建项目。
- 运行程序,点击按钮即可触发打印功能。
注意:上述代码只实现了最基本的打印功能,你需要在
Print()
函数中添加相应的代码来实现你自己的打印逻辑。解决 无用评论 打赏 举报
悬赏问题
- ¥100 描述一下元器件的基本功能,pcba板的基本原理
- ¥15 STM32无法向设备写入固件
- ¥15 使用ESP8266连接阿里云出现问题
- ¥15 BP神经网络控制倒立摆
- ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
- ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
- ¥30 Unity接入微信SDK 无法开启摄像头
- ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
- ¥20 cad图纸,chx-3六轴码垛机器人
- ¥15 移动摄像头专网需要解vlan