![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Xử lý văn bản và Font chữ
Số trang: 24
Loại file: pdf
Dung lượng: 426.49 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
XỬ LÝ VĂN BẢN VÀ FONT CHỮMột trong các đặc tính nổi bật nhất của Windows là giao diện giao tiếp với người dùng. Nhờ đặc tính này, nhiều dạng dữ liệu thông tin khác nhau được máy tính hỗ trợ khi xuất ra màn hình, máy in, … Trong đó, xuất văn bản ra vùng làm việc của các ứng dụng Win32 là hình thức phổ biến nhất trong giao diện đồ họa. Ở các chương trước, các thao tác xuất thông tin chỉ được thực hiện thông qua các cửa sổ thông báo, hộp thoại và các phần...
Nội dung trích xuất từ tài liệu:
Xử lý văn bản và Font chữ XỬ LÝ VĂN BẢN VÀ FONT CHỮMỞ ĐẦUMột trong các đặc tính nổi bật nhất của Windows là giao diện giao tiếp với người dùng.Nhờ đặc tính này, nhiều dạng dữ liệu thông tin khác nhau được máy tính hỗ trợ khi xuấtra màn hình, máy in, … Trong đó, xuất văn bản ra vùng làm việc của các ứng dụngWin32 là hình thức phổ biến nhất trong giao diện đồ họa.Ở các chương trước, các thao tác xuất thông tin chỉ được thực hiện thông qua các cửa sổthông báo, hộp thoại và các phần tử điều khiển. Chương này sẽ trình bày cách thể hiệnnội dung văn bản trên vùng làm việc của cửa sổ thông qua các hàm Win32® API.Phần cuối chương sẽ trình bày cách khởi tạo, chọn và xử lý các dạng font chữ khác nhau.Nhờ khả năng này, việc thể hiện các đoạn văn bản sẽ trở nên sinh động và trực quan hơn.XỬ LÝ VĂN BẢNXử lý văn bản là công việc phổ biến nhất trong các thao tác đồ họa. Chúng được sử dụngtheo các định dạng và cách thức khác nhau trong các ứng dụng xử lý tài liệu, bảng biểu,cơ sở dữ liệu và hỗ trợ thiết kế bằng máy tính (CAD - Computer Aided Design).Tập hợp các hàm Win32® API xử lý văn bản được phân thành hai nhóm chính: Nhómcác hàm định dạng – chuẩn bị cho thao tác xuất dữ liệu, và nhóm các hàm thực hiệnthao tác hiển thị. Chúng ta sẽ bắt đầu với việc tìm hiểu các hàm hiển thị.Hiển thị văn bảnĐể hiện thị nội dung văn bản trên các thiết bị xuất, dựa vào từng trường hợp thể hiệnkhác nhau, ta dùng các hàm Win32 API khác nhau. Các hàm này phụ thuộc vào font chữ,thuộc tính của thiết bị ngữ cảnh DC (Device Context ) và khoảng cách ký tự thể hiện.Hàm phổ biến nhất thực hiện thao tác xuất một chuỗi ký tự văn bản, sử dụng font chữ,màu chữ và màu nền hiện hành là :BOOL TextOut(HDC hDC, int nXStart, int nYStart, LPCTSTR lpString, intcbString);Hàm này thực hiện thao tác xuất chuỗi ký tự xác định bởi con trỏ lpString ra DC, vớichiều dài được xác định bởi cbString (không phụ thuộc vào ký tự NULL đánh dấu kếtthúc chuỗi).Hai trường nXStart và nYStart là vị trí gốc của chuỗi hiển thị, xác định theo tọa độ logiccủa vùng làm việc cửa sổ, và thường là điểm gốc trên bên trái của vùng hiển thị chuỗi.Chúng ta sẽ bàn kỹ hơn khi tìm hiểu về canh lề văn bản trong phần 5.2.2.Nếu thao tác xuất chuỗi thực hiện thành công, hàm trả về giá trị khác 0. Ngược lại, giá trịtrả về bằng 0.Khi cần trình bày văn bản theo tuần tự từng cột, ta dùng hàm TabbedTextOut sau :LONG TabbedTextOut(HDC hDC, int nX, int nY, LPCTSTR lpString, intnCount, int nNumTabs, LPINT lpnTabStopPositions, int nTabOrigin);Nếu trong chuỗi ký tự có các ký tự tab (‘ ’ hoặc 0x09), hàm TabbedTextOut sẽ chuyểncác ký tự tab vào dãy các vị trí dừng tương ứng. Số lượng các tab dừng được xác địnhbởi nNumTabs, và lpnTabStopPositions là dãy vị trí các tab dừng theo đơn vị tínhpixels. Ví dụ, nếu độ rộng trung bình của mỗi ký tự là 8 pixels, và mỗi tab dừng cần đặtcách nhau 5 ký tự, dãy các tab dừng sẽ phải lần lượt có giá trị 40, 80, 120, … . Tuy nhiên,các giá trị này không nhất thiết phải là bội số của nhau.Nếu biến nNumTabs hoặc lpnTabStopPositions có giá trị là 0 và NULL, các tab dừngđược đặt cách nhau từng 8 ký tự. Nếu nNumTabs bằng 1, lpnTabStopPositions trỏ đếngiá trị xác định một dãy tăng tuần hoàn là bội số của dãy này. Ví dụ, nếu nNumTabsbằng 1, và lpnTabStopPositions bằng 30, ta sẽ có dãy tab dừng tại vị trí 30, 60, 90, …pixels.Trường nTabOrigin xác định tọa độ theo trục x của điểm bắt đầu tính khoảng cách tớicác tab. Giá trị này không nhất thiết phải là vị trí đầu tiên của chuỗi, có thể chọn trùnghoặc không.Hàm trả về kích thước chuỗi hiển thị, theo đơn vị logic, nếu thành công. Ngược lại, hàmtrả về 0. Trong đó, chiều cao chuỗi là WORD cao của biến kiểu LONG, chiều rộng làWORD thấp.Một hàm xuất văn bản khác tương tự hàm TextOut là hàm ExtTextOut :BOOL ExtTextOut(HDC hDC, int X, int Y, UINT fuOptions, CONST RECT *lprc,LPCTSTR lpString, UINT cbCount, CONST INT *lpDx);Biến lprc là một con trỏ đến cấu trúc RECT, trong đó nội dung văn bản hiển thị sẽ bị cắtvào vùng hình chữ nhật tương ứng nếu fuOptions được thiết lập là ETO_CLIPPED,hoặc là vùng nền hình chữ nhật sẽ được tô bởi màu nền nếu fuOptions làETO_OPAQUE.Trường lpDx là một dãy số nguyên xác định khoảng cách giữa các ký tự liên tiếp trongchuỗi. Nó cho phép một chương trình tạo khoảng cách rộng hoặc hẹp giữa các ký tự, điềumà đôi lúc cần thiết trong việc điều chỉnh các từ trong văn bản theo độ rộng cột. Giá trịlpDx có thể là NULL tương ứng với chế độ mặc định cho khoảng cách này.Tương tự hàm TextOut, hàm ExtTextOut trả về giá trị khác 0 nếu thành công. Ngượclại, giá trị trả về bằng 0.Một hàm mức ở mức cao hơn để xuất văn bản là hàm DrawText :int DrawText(HDC hDC, LPCTSTR lpString, int nCount, LPRECT lpRect, UINTuFormat);Cũng như các hàm xuất văn bản khác, hàm DrawText xuất chuỗi xác định bởi con trỏlpString có độ dài nCount. Tuy nhiên, với chuỗi có ký tự kết thúc là NULL, nếu nCountbằng ...
Nội dung trích xuất từ tài liệu:
Xử lý văn bản và Font chữ XỬ LÝ VĂN BẢN VÀ FONT CHỮMỞ ĐẦUMột trong các đặc tính nổi bật nhất của Windows là giao diện giao tiếp với người dùng.Nhờ đặc tính này, nhiều dạng dữ liệu thông tin khác nhau được máy tính hỗ trợ khi xuấtra màn hình, máy in, … Trong đó, xuất văn bản ra vùng làm việc của các ứng dụngWin32 là hình thức phổ biến nhất trong giao diện đồ họa.Ở các chương trước, các thao tác xuất thông tin chỉ được thực hiện thông qua các cửa sổthông báo, hộp thoại và các phần tử điều khiển. Chương này sẽ trình bày cách thể hiệnnội dung văn bản trên vùng làm việc của cửa sổ thông qua các hàm Win32® API.Phần cuối chương sẽ trình bày cách khởi tạo, chọn và xử lý các dạng font chữ khác nhau.Nhờ khả năng này, việc thể hiện các đoạn văn bản sẽ trở nên sinh động và trực quan hơn.XỬ LÝ VĂN BẢNXử lý văn bản là công việc phổ biến nhất trong các thao tác đồ họa. Chúng được sử dụngtheo các định dạng và cách thức khác nhau trong các ứng dụng xử lý tài liệu, bảng biểu,cơ sở dữ liệu và hỗ trợ thiết kế bằng máy tính (CAD - Computer Aided Design).Tập hợp các hàm Win32® API xử lý văn bản được phân thành hai nhóm chính: Nhómcác hàm định dạng – chuẩn bị cho thao tác xuất dữ liệu, và nhóm các hàm thực hiệnthao tác hiển thị. Chúng ta sẽ bắt đầu với việc tìm hiểu các hàm hiển thị.Hiển thị văn bảnĐể hiện thị nội dung văn bản trên các thiết bị xuất, dựa vào từng trường hợp thể hiệnkhác nhau, ta dùng các hàm Win32 API khác nhau. Các hàm này phụ thuộc vào font chữ,thuộc tính của thiết bị ngữ cảnh DC (Device Context ) và khoảng cách ký tự thể hiện.Hàm phổ biến nhất thực hiện thao tác xuất một chuỗi ký tự văn bản, sử dụng font chữ,màu chữ và màu nền hiện hành là :BOOL TextOut(HDC hDC, int nXStart, int nYStart, LPCTSTR lpString, intcbString);Hàm này thực hiện thao tác xuất chuỗi ký tự xác định bởi con trỏ lpString ra DC, vớichiều dài được xác định bởi cbString (không phụ thuộc vào ký tự NULL đánh dấu kếtthúc chuỗi).Hai trường nXStart và nYStart là vị trí gốc của chuỗi hiển thị, xác định theo tọa độ logiccủa vùng làm việc cửa sổ, và thường là điểm gốc trên bên trái của vùng hiển thị chuỗi.Chúng ta sẽ bàn kỹ hơn khi tìm hiểu về canh lề văn bản trong phần 5.2.2.Nếu thao tác xuất chuỗi thực hiện thành công, hàm trả về giá trị khác 0. Ngược lại, giá trịtrả về bằng 0.Khi cần trình bày văn bản theo tuần tự từng cột, ta dùng hàm TabbedTextOut sau :LONG TabbedTextOut(HDC hDC, int nX, int nY, LPCTSTR lpString, intnCount, int nNumTabs, LPINT lpnTabStopPositions, int nTabOrigin);Nếu trong chuỗi ký tự có các ký tự tab (‘ ’ hoặc 0x09), hàm TabbedTextOut sẽ chuyểncác ký tự tab vào dãy các vị trí dừng tương ứng. Số lượng các tab dừng được xác địnhbởi nNumTabs, và lpnTabStopPositions là dãy vị trí các tab dừng theo đơn vị tínhpixels. Ví dụ, nếu độ rộng trung bình của mỗi ký tự là 8 pixels, và mỗi tab dừng cần đặtcách nhau 5 ký tự, dãy các tab dừng sẽ phải lần lượt có giá trị 40, 80, 120, … . Tuy nhiên,các giá trị này không nhất thiết phải là bội số của nhau.Nếu biến nNumTabs hoặc lpnTabStopPositions có giá trị là 0 và NULL, các tab dừngđược đặt cách nhau từng 8 ký tự. Nếu nNumTabs bằng 1, lpnTabStopPositions trỏ đếngiá trị xác định một dãy tăng tuần hoàn là bội số của dãy này. Ví dụ, nếu nNumTabsbằng 1, và lpnTabStopPositions bằng 30, ta sẽ có dãy tab dừng tại vị trí 30, 60, 90, …pixels.Trường nTabOrigin xác định tọa độ theo trục x của điểm bắt đầu tính khoảng cách tớicác tab. Giá trị này không nhất thiết phải là vị trí đầu tiên của chuỗi, có thể chọn trùnghoặc không.Hàm trả về kích thước chuỗi hiển thị, theo đơn vị logic, nếu thành công. Ngược lại, hàmtrả về 0. Trong đó, chiều cao chuỗi là WORD cao của biến kiểu LONG, chiều rộng làWORD thấp.Một hàm xuất văn bản khác tương tự hàm TextOut là hàm ExtTextOut :BOOL ExtTextOut(HDC hDC, int X, int Y, UINT fuOptions, CONST RECT *lprc,LPCTSTR lpString, UINT cbCount, CONST INT *lpDx);Biến lprc là một con trỏ đến cấu trúc RECT, trong đó nội dung văn bản hiển thị sẽ bị cắtvào vùng hình chữ nhật tương ứng nếu fuOptions được thiết lập là ETO_CLIPPED,hoặc là vùng nền hình chữ nhật sẽ được tô bởi màu nền nếu fuOptions làETO_OPAQUE.Trường lpDx là một dãy số nguyên xác định khoảng cách giữa các ký tự liên tiếp trongchuỗi. Nó cho phép một chương trình tạo khoảng cách rộng hoặc hẹp giữa các ký tự, điềumà đôi lúc cần thiết trong việc điều chỉnh các từ trong văn bản theo độ rộng cột. Giá trịlpDx có thể là NULL tương ứng với chế độ mặc định cho khoảng cách này.Tương tự hàm TextOut, hàm ExtTextOut trả về giá trị khác 0 nếu thành công. Ngượclại, giá trị trả về bằng 0.Một hàm mức ở mức cao hơn để xuất văn bản là hàm DrawText :int DrawText(HDC hDC, LPCTSTR lpString, int nCount, LPRECT lpRect, UINTuFormat);Cũng như các hàm xuất văn bản khác, hàm DrawText xuất chuỗi xác định bởi con trỏlpString có độ dài nCount. Tuy nhiên, với chuỗi có ký tự kết thúc là NULL, nếu nCountbằng ...
Tìm kiếm theo từ khóa liên quan:
Công nghệ thông tin kỹ thuật lập trình quản trị mạng tin học máy tính Xử lý văn bản và Font chữTài liệu liên quan:
-
52 trang 437 1 0
-
24 trang 365 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 325 0 0 -
74 trang 307 0 0
-
96 trang 303 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 295 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 290 1 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 289 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 277 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 274 0 0