Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để tính toán đơn vị cơ bản hộp thoại với các hệ thống dựa Font

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:125681
TÓM TẮT
Bài viết này chứng tỏ làm thế nào để tính toán đơn vị cơ bản hộp thoại cho cáchộp thoại bằng cách sử dụng một phông chữ khác với Font hệ thống trong Windows 95. Bạn có thể sử dụngtính toán này để xây dựng mẫu hộp thoại trong bộ nhớ hoặc tính toánKích thước hộp thoại.
THÔNG TIN THÊM
Mỗi mẫu hộp thoại chứa các phép đo chỉ ra vị trí,Chiều rộng và chiều cao của hộp thoại và kiểm soát nó chứa. Đâyđo đạc là thiết bị độc lập, do đó, một ứng dụng có thể sử dụng một đĩa đơnmẫu để tạo ra cùng một hộp thoại cho tất cả các loại thiết bị hiển thị.Điều này đảm bảo rằng một hộp thoại sẽ có cùng một tỷ lệ vàxuất hiện trên màn hình tất cả mặc dù độ phân giải khác nhau và tỷ lệ khía cạnhgiữa màn hình.

Hơn nữa, các đo đạc hộp thoại được cho theo đơn vị cơ bản hộp thoại. Một trong nhữngđơn vị cơ sở ngang là tương đương với một phần tư chiều rộng nhân vật trungcho font hệ thống. Một trong những đơn vị dọc cơ sở là tương đương với một thứ tám của cáctrung bình chiều cao nhân vật cho font hệ thống. Một ứng dụng có thể truy xuấtsố điểm ảnh trên một đơn vị cơ sở cho việc hiển thị hiện tại bằng cách sử dụng cácChức năng GetDialogBaseUnits. Từ thấp thứ tự của giá trị trả lại, từchức năng GetDialogBaseUnits, chứa các đơn vị cơ sở ngang và cáccao-trật tự từ của giá trị trả lại, từ chức năng GetDialogBaseUnits,chứa các đơn vị cơ sở dọc.

Sử dụng thông tin này, bạn có thể tính toán các hộp thoại đơn vị cơ sở cho một hộp thoạihộp bằng cách sử dụng phông chữ khác với font hệ thống:
horz pixels == 2 * horz dialog units * (average char width  of dialog font                        / average char width of system font)vert pixels == 2 * vert dialog units * (average char height of dialog font                        / average char height of system font)				
Như font chữ của một thay đổi hộp thoại, kích thước thực tế và vị trí của mộtkiểm soát cũng thay đổi.

Một trong những đơn vị cơ bản hộp thoại là tương đương với số điểm ảnh trên mỗi hộp thoạihộp đơn vị như sau:
1 horz dialog base unit == (2 * average char width  dialog font /                                 average char width  system font) pixels1 vert dialog base unit == (2 * average char height dialog font /                                 average char height system font) pixels				
Nhân vật trung bình chiều rộng và chiều cao của một phông chữ có thể được tính như sau:
hFontOld = SelectObject(hdc,hFont);GetTextMetrics(hdc,&tm);GetTextExtentPoint32(hdc,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst"            "uvwxyz",52,&size);avgWidth = (size.cx/26+1)/2;avgHeight = (WORD)tm.tmHeight;				
Lĩnh vực tmAveCharWidth cấu trúc TEXTMETRIC chỉ xấp xỉ cácthực tế trung rộng (thường nó mang lại cho độ rộng của các chữ cái"x") và do đó, sự thật trung rộng phải được tính toán để phù hợp vớigiá trị được sử dụng bởi hệ thống.

Bạn có thể sử dụng chức năng MapDialogRect để chuyển đổi đơn vị hộp thoại vàopixel, nhưng không có chức năng mà sẽ chuyển đổi pixel vào hộp thoạiđơn vị. Bạn có thể sử dụng công thức hiển thị ở đây để thực hiện chuyển đổi này.
THAM KHẢO
Để biết thêm chi tiết về chủ đề này, xin vui lòng xem bài viết sau trong cơ sở kiến thức Microsoft:
145994 Làm thế nào để tính toán đơn vị hộp thoại khi không sử dụng Font hệ thống

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 125681 - Xem lại Lần cuối: 08/17/2011 12:19:00 - Bản sửa đổi: 2.0

  • kbdlg kbhowto kbmt KB125681 KbMtvi
Phản hồi