vc 5.0是開發windows 95下應用程式的強大工具。本文將通過一
個具體例項討論用vc列印文字和圖形的一些技術。在windows 95下,
顯示器和印表機、繪圖儀都被視為輸出裝置。系統預設的輸出裝置是
顯示器。要使用印表機,首先需要建立乙個指向印表機的裝置環境控制代碼,
然後通過該控制代碼呼叫相關的繪圖函式把所需的文字和圖形輸出至列印
機上。當列印結束後,刪除這個裝置環境控制代碼即可。
一、技術細節
當我們在windows95下安裝好印表機後,總是需要設定乙個為預設
印表機,在windows95的啟動配置檔案win.ini中[window]段中列出了
帶有關鍵字device的預設印表機。如果在檔案win.ini中有如下幾行:
[windows]
[其他程式行]
device=epson lq-1600k,epson24,lpt1:
在device後的字串中就包含了系統中預設的印表機的三個重要
屬性.它們依次是印表機的裝置名是lq-1600k,驅動程式名是epson24,
輸出埠為lpt1。在程式中我們可呼叫api函式getprofilestring從
win.ini檔案中獲得這個裝置字串。再將這個裝置字串進行分解,
獲得這三個屬性,作為引數用api函式createdc呼叫。如果呼叫成功,
則為預設印表機建立乙個裝置環境控制代碼,否則返回乙個空值(null)。
createdc函式的原形如下:
hdc createdc(
lpctstr lpszdriver,
lpctstr lpszdevice,
lpctstr lpszoutput,
const devmode *lpinitdata
); 二、程式**及說明
新建乙個名為test的工程,窗體型別為對話方塊(dialog based)
模式。在窗體中加入乙個按鈕(button),設定這個button的屬性:
id=idc_print,caption="列印"。在類嚮導中找到該button
的單擊事件對應的訊息bn_clicked,增加其成員函式onprint。
在testdlg.cpp檔案中找到onprint函式並作如下改動。
void ctestdlg::onprint()
; // 得到裝置字串存入陣列szprinter中
getprofilestring("windows","device",",,,",szprinter,80);
// 將裝置字串分解
if(null!=(szdevice=strtok(szprinter,","))&&
null!=(szdriver=strtok(null,","))&&
null!=(szoutput=strtok(null,",")))
// 建立乙個印表機裝置控制代碼
if((hdcprint=createdc(szdriver,szdevice,szoutput,null))!=0)
// 用api函式deletedc銷毀乙個印表機裝置控制代碼
deletedc(hdcprint);
} else }
ubuntu 使用xp下的印表機
周海漢 文 2010.1.11 ubuntu要使用window xp下共享的印表機,需先安裝samba sudo aptitude install samba 然後,進入 系統 系統管理 列印 新建印表機。選最下面的 網路印表機 windows printer via samba,輸入ip位址和使用...
Linux 下安裝印表機
首先是看一篇how to了,對於個人使用者,cups應該是更好的選擇,參考 考慮到實驗室大批量安裝的需求,還是lprng,lprng is far easier to administer for large installations.作業系統是debian 4.0r3,首先安裝lprng apt...
檢測印表機並於指定印表機上列印
1.自動檢測印表機 tprinter p printer tstringlist list new tstringlist list assign p printers 重點是這句 if list count 0 delete list else 2.在指定的印表機上列印報表 tprinter pr...