我最近剛從頭開始準備電腦軟體設計丙級的考試,遇到需要在Windows Form設定一個Button和PrintDocument,並在按下Button之後,列印考生答案和一些基本資料。考生的答案會先顯示在Windows Form上(有一個標準答案),按下列印答案的Button之後才會出現預覽文件的樣子。
我有買一本用C++解題的書,但我在他的網站上發現他全部都是用Visual Basic寫的,網路上也很少講到用C++列印那些的寫法。他用VB寫的是,直接在Button寫Call PrintDocument元件,然後在PD的程式碼部份寫要列印的資料和答案。
想請有看到的人能夠幫我解答一下或是有經驗可以分享給我,謝謝!
#include <cstdio>
#include <cstdlib>
#include <string>
#include <Windows.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <cctype>
#include <locale>
using namespace std;
string studentData; // 用來儲存考生資料和答案的全局變數
// 列印文件的 PrintPage 事件處理函數
void printDocument_PrintPage(Object^ sender, System::Drawing::Printing::PrintPageEventArgs^ e)
{
// 創建一個新的 Font
System::Drawing::Font^ font = gcnew System::Drawing::Font("Arial", 12);
// 創建一個新的 Brush
System::Drawing::Brush^ brush = gcnew System::Drawing::SolidBrush(System::Drawing::Color::Black);
// 將考生資料和答案寫入列印文件
e->Graphics->DrawString(gcnew System::String(studentData.c_str()), font, brush, 50, 50);
}
// 按鈕的 Click 事件處理函數
void printButton_Click(Object^ sender, EventArgs^ e)
{
// 創建一個新的 PrintDocument
System::Drawing::Printing::PrintDocument^ printDocument = gcnew System::Drawing::Printing::PrintDocument();
// 添加列印事件
printDocument->PrintPage += gcnew System::Drawing::Printing::PrintPageEventHandler(printDocument_PrintPage);
// 創建一個新的 PrintPreviewDialog
System::Windows::Forms::PrintPreviewDialog^ printPreviewDialog = gcnew System::Windows::Forms::PrintPreviewDialog();
// 將 PrintDocument 設置為預覽對話框的列印文件
printPreviewDialog->Document = printDocument;
// 顯示列印預覽對話框
printPreviewDialog->ShowDialog();
}