- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VisualCWindowsProgramming
Visual C++ Windows Programming 大綱 Windows 的基本繪圖原理 基本繪圖函式 Windows 的基本繪圖原理 繪圖裝置介面 (GDI) 在視窗介面下,資料輸出的方式,相較於文字模式是較為複雜的,但也更具彈性且較多變。在視窗介面下顯示的所有資料,都被視為圖形,不論資料看起來是線段、圖形或者文字。 在視窗程式裡,資料輸出均透過繪圖裝置介面 (graphics device interface; GDI) 來完成,由於運用 GDI 函式的關係,使得程式設計師只要運用相同的函式,就可以將資料輸出到不同的裝置上。換句話說,對於程式而言,將資料顯示在螢幕上,與將資料輸出到印表機的方法是一樣的。 Windows 的基本繪圖原理 (續) 裝置內文 (DC) 當我們想要在視窗的工作區中繪製圖案,或者將工作區中的資料列印出來時,都必須先獲得一個裝置內文 (device context; DC) 。 裝置 (device) 泛指各種與資料輸出有關的設備,例如:螢幕,印表機等,以及各種特定格式的檔案,如 BMP 圖檔。 所謂的內文 (context) ,是指將輸出於各種裝置的資料。當你需要將你建立的資料輸出至裝置時,就必須為這個裝置準備一個 DC ,以便儲存欲輸出的資料。而這些資料就是使用 GDI 函數繪圖的結果。 Windows 的基本繪圖原理 (續) 裝置內文是一個用以溝通程式與裝置的媒介。 不論是要在視窗客戶區顯示繪圖,或是將圖輸出到印表機裡印出來,所需要做的就是為那個裝置產生一個DC,然後利用GDI函數繪製圖形.透過GDI函數與DC的協助,可以讓我們不論將資料輸出到那個裝置,都使用相同的方法. 顏色的定義 RGB巨集 (0,0,0):黑色, (255,255,255):白色 COLORREF color = RGB(255, 0, 0); Windows 的基本繪圖原理 (續) MFC 的 GDI Classes (CGdiObject) CBitmap:用以建立操作點陣圖的物件。 CPen:用於建立操作畫筆的物件。 CBrush:用於建立操作畫刷的物件。 CFont:用於建立操作文字的物件。 CRgn:用於建立繪製圖形的物件。 CPalette:用於建立調色盤的物件。 Windows 的基本繪圖原理 (續) MFC 的 DC Classes (CDC) CClientDC:用於將資料輸出至視窗工作區。 CWindowDC:用於將資料輸出至視窗中,包含工作區以外的區域。 CPaintDC:用於輸出回應 WM_PAINT 訊息的資料。 CMetaFileDC:用於將資料輸出至特殊格式的檔案中。 基本繪圖函式 畫點 (point) 函式 COLORREF CDC::SetPixel(int x, int y, COLORREF color); COLORREF CDC::SetPixel(POINT point, COLORREF color); COLORREF CDC::GetPixel(int x, int y) const; COLORREF CDC::GetPixel(POINT point) const; virtual BOOL CDC::PtVisible(int x, int y) const; virtual BOOL CDC::PtVisible(POINT point) const; //如果此像點恰好被其它視窗遮住就看不到了. 畫線 (line) 函式 BOOL CDC::MoveTo(int x, int y); BOOL CDC::MoveTo(POINT point); BOOL CDC::LineTo(int x, int y); BOOL CDC::LineTo(POINT point); 基本繪圖函式 (續) 畫弧 (arc) 函式與畫鐘 (chord) 函式 BOOL CDC::Arc(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); BOOL CDC::Arc(LPCRECT r, POINT Start, POINT End); BOOL CDC::AngleArc(int x, int y, int radius, float startAngle, float sweepAngle); BOOL CDC::Chord(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); BOOL CDC::Chord(LPCRECT r, POINT Start, POINT End); 畫餅 (pie) 函
文档评论(0)