text:
Phép dưỡng sinh ăn uống mùa thu
Ăn uống vào mùa thu, trước hết cần phải tuân thủ nguyên tắc "thu đông dưỡng âm", "phòng táo giữ âm, tư thận nhuận phế", nghĩa là nên bổ sung đầy đủ tân dịch và trọng dụng những thực phẩm có công dụng dưỡng âm nhuận táo.
Mùa thu có ba tháng, bắt đầu từ tiết Lập thu trải qua các tiết Xử thử, Bạch lộ, Thu phân, Hàn lộ, Sương giáng và Lập đông, là mùa vạn vật thành thục, cây trái và mùa màng đến kỳ thu hoạch. Tiết thu, dương khí dần dần thu liễm bế tàng, âm khí từ từ tăng trưởng, thời tiết chuyển dần từ nóng sang lạnh, là giai đoạn quá dộ của "dương tiêu âm trưởng". Lúc này, mưa ít gió nhiều, độ ẩm trong không khí giảm đi, "Táo" với đặc tính khô hanh là chủ khí. Thu táo dễ làm hao tổn chất dịch trong cơ thể gây nên các hiện tượng miệng, môi, mũi, họng đều khô, da dẻ khô ngứa thậm chí nứt nẻ, râu tóc không nhuận, đại tiện dễ táo. Khí táo mùa thu được phân ra ôn táo và lương táo.
Đầu thu, khí nóng của mùa hạ chưa hết kết hợp với khí táo mà thành Ôn táo; Cuối thu, khí lạnh tăng dần kết hợp với khí táo mà thành lương táo. Từ mùa hạ nóng nực chuyển sang mùa thu mát mẻ trong người cảm thấy dễ chịu hơn, tình trạng ăn uống không ngon miệng trong mùa hạ mất dần, khẩu vị và tinh thần được phục hồi khiến cho mùa thu trở thành một mùa bồi bổ khá tốt trong năm.
Đầu thu ôn táo nên chọn những thứ có tính mát để thanh nhiệt dưỡng âm, sinh tân dịch như: Củ cải, giá đỗ, củ đậu, ngó sen, khoai sọ, khoai môn, củ từ, mía, lê, táo, hồng xiêm, nho, trứng vịt, thịt thỏ, tiểu mạch, bách hợp, trà mạch môn... Cuối thu lương táo nên chọn dùng những thực phẩm có tính bình hòa để tư âm dưỡng huyết nhuận táp như: củ mài, vừng, mộc nhĩ trắng (ngân nhĩ), thịt rùa, thịt ba ba, sò, gà ác, tổ yến, sữa bò, mật ong, nước dâu, kỷ tử, hà thủ ô... Sách Ẩm thực chính yếu viết: "Thu khí táo, nghi thực ma dĩ nhuận khí táo" (mùa thu khí trời khô hanh nên ăn nhiều vừng để nhuận táo).
Để bồi bổ tân dịch, sách Y học nhập môn khuyên nên trọng dụng các loại cháo như cháo bách hợp hạt sen, cháo hồng táo gạo nếp, cháo đường phèn, cháo sa sâm, cháo hoàng tinh... với phương thức "sáng sớm dùng cháo có tác dụng tốt cho quá trình trao đổi chất, lợi cho dạ dày, sinh tân dịch...". Theo cổ nhân, ăn cháo vào mùa thu rất có ích cho sức khỏe, nhất là vào tiết đầu thu khi khí trời vẫn còn nóng ẩm dễ gây ra các bệnh lý đường tiêu hóa. Sách Tùy tức cư ẩm thực phổ viết: "Gạo tẻ vị ngọt tính bình, hợp với việc nấu thành cháo, cháo là một trong những đồ ăn bổ dưỡng tốt nhất".
Thứ đến, theo Học thuyết Ngũ hành, vị chua vào Can, vị cay vào Phế. Phế thuộc Kim, Can thuộc Mộc. "Vạn vật thu thu, phế khí kim vượng", nghĩa là, mùa thu vạn vật thu vào, khí kim ở Phế vượng thịnh. Nếu ăn uống nhiều đồ có vị cay thì sẽ trợ giúp cho phế khí khiến cho phế khí càng thịnh, phế kim khắc can mộc thái quá dẫn đến công năng của tạng Can bị rối loạn. Vì vậy, cổ nhân khuyên về mùa thu nên ăn uống "thiểu tân tăng toan" ("ít cay nhiều chua", cần trọng dụng nhiều các thực phẩm có vị chua nhằm tăng cường chức năng của Can và phòng ngừa phế khí quá thịnh làm hại đến Can và dùng ít thực phẩm có vị cay như hành, gừng, tỏi, ớt, hạt tiêu... Thêm nữa, mùa thu là giai đoạn quá độ từ nóng chuyển sang lạnh vì vậy không nên ăn quá nhiều đồ sống lạnh hoặc bổ béo khó tiêu dễ gây thương tổn Tỳ và Vị.
Đầu thu nên ăn thức ăn có tính mát như giá đỗ, trứng vịt, khoai sọ...
Cuối cùng, mùa thu ăn uống bồi bổ nên điều hòa (bình bổ) vì thời tiết mát mẻ, âm dương tương đối cân bằng, đồ ăn thức uống không nên quá nóng và quá lạnh. Ví như về mùa hạ các loại dưa như dưa hấu, dưa chuột, dưa gang...là thực phẩm thượng hạng vì có tác dụng thanh nhiệt tiêu thử mạnh, nhưng sau tiết Lập thu thì bất luận loại dưa nào dù ngon đến mấy cũng không nên ăn nhiều vì dễ làm cho dương khí của tỳ vị hư hao. Sách thuốc cổ đã viết: "Thu qua hoại đỗ" (mùa thu ăn dưa thì có hại cho đường tiêu hóa).
ThS. Hoàng Khánh Toàn
-
Nghị quyết về dân số mới có nới lỏng mức sinh, số con ?
-
Miền Bắc đón đợt rét mới thấp nhất dưới 8 độ C; xuất hiện bão gần Biển Đông
-
Tổng thống Hàn Quốc thăm Trung Quốc: Chuyến thăm củng cố niềm tin
-
Bệnh viện Việt Nam Thuỵ Điển Uông Bí: Khám tầm soát bệnh tiểu đường miễn phí
- Bệnh viện Việt Nam Thuỵ Điển Uông Bí: Khám tầm soát bệnh tiểu đường miễn phí
- Giới hạn tối đa của con người về tuổi thọ, chiều cao và hoạt động thể chất
- 9h30 sáng mai, Truyền hình trực tuyến: Trẻ biếng ăn – Cách nào xử lý?
- Ðẩy lùi viêm đường tiết niệu khi mang thai
- Tiểu đường trong thai kỳ ảnh hưởng đến sức khỏe tim mạch của thai nhi
Gửi bài viết cho tòa soạn qua email: bandientuskds@gmail.com
Sức khỏe người lớn
Sức khỏe trẻ em
Sơ cứu
Sức khoẻ tâm thần
Ẩm thực và dinh dưỡng
Sức khỏe và môi trường
Các biện pháp tránh thai
Sức khoẻ sinh sản và tình dục
Các thuật ngữ
Tìm hiểu cơ thể người
Dược
Thẩm mỹ
Trang phục
Rèn luyện
Ngôi nhà an toàn
Giải thích các xét nghiệm
Khám sức khỏe
Dinh dưỡng phòng chống ung thư
-
Vinmec xây bệnh viện 1.200 giường, áp dụng cả với bệnh nhân có bảo hiểm y tế SKĐS - Đại sứ đặc mệnh toàn quyền của Hoa Kỳ tại Việt Nam Daniel Kritenbrink đã đến dự và chứng kiến lễ ký kết thỏa thuận hợp tác chiến lược toàn diện giữa GE Healthcare và hệ thống Y tế Vinmec
- 6 lý do nên uống vitamin E và cách uống vitamin E đúng cách
- Top 8 mẹo trị đờm hiệu quả từ thực phẩm có sẵn trong bếp
- 18 loại thực phẩm giàu vitamin K
- Ngạc nhiên với 50 tác dụng tuyệt vời của dầu dừa

markdown:
# Phép dưỡng sinh ăn uống mùa thu
Ăn uống vào mùa thu, trước hết cần phải tuân thủ nguyên tắc "thu đông dưỡng âm", "phòng táo giữ âm, tư thận nhuận phế", nghĩa là nên bổ sung đầy đủ tân dịch và trọng dụng những thực phẩm có công dụng dưỡng âm nhuận táo.
Mùa thu có ba tháng, bắt đầu từ tiết Lập thu trải qua các tiết Xử thử, Bạch lộ, Thu phân, Hàn lộ, Sương giáng và Lập đông, là mùa vạn vật thành thục, cây trái và mùa màng đến kỳ thu hoạch. Tiết thu, dương khí dần dần thu liễm bế tàng, âm khí từ từ tăng trưởng, thời tiết chuyển dần từ nóng sang lạnh, là giai đoạn quá dộ của "dương tiêu âm trưởng". Lúc này, mưa ít gió nhiều, độ ẩm trong không khí giảm đi, "Táo" với đặc tính khô hanh là chủ khí. Thu táo dễ làm hao tổn chất dịch trong cơ thể gây nên các hiện tượng miệng, môi, mũi, họng đều khô, da dẻ khô ngứa thậm chí nứt nẻ, râu tóc không nhuận, đại tiện dễ táo. Khí táo mùa thu được phân ra ôn táo và lương táo.
Đầu thu, khí nóng của mùa hạ chưa hết kết hợp với khí táo mà thành Ôn táo; Cuối thu, khí lạnh tăng dần kết hợp với khí táo mà thành lương táo. Từ mùa hạ nóng nực chuyển sang mùa thu mát mẻ trong người cảm thấy dễ chịu hơn, tình trạng ăn uống không ngon miệng trong mùa hạ mất dần, khẩu vị và tinh thần được phục hồi khiến cho mùa thu trở thành một mùa bồi bổ khá tốt trong năm.
Đầu thu ôn táo nên chọn những thứ có tính mát để thanh nhiệt dưỡng âm, sinh tân dịch như: Củ cải, giá đỗ, củ đậu, ngó sen, khoai sọ, khoai môn, củ từ, mía, lê, táo, hồng xiêm, nho, trứng vịt, thịt thỏ, tiểu mạch, bách hợp, trà mạch môn... Cuối thu lương táo nên chọn dùng những thực phẩm có tính bình hòa để tư âm dưỡng huyết nhuận táp như: củ mài, vừng, mộc nhĩ trắng (ngân nhĩ), thịt rùa, thịt ba ba, sò, gà ác, tổ yến, sữa bò, mật ong, nước dâu, kỷ tử, hà thủ ô... Sách Ẩm thực chính yếu viết: "Thu khí táo, nghi thực ma dĩ nhuận khí táo" (mùa thu khí trời khô hanh nên ăn nhiều vừng để nhuận táo).
Để bồi bổ tân dịch, sách
*Y học nhập môn* khuyên nên trọng dụng các loại cháo như cháo bách hợp hạt sen, cháo hồng táo gạo nếp, cháo đường phèn, cháo sa sâm, cháo hoàng tinh... với phương thức "sáng sớm dùng cháo có tác dụng tốt cho quá trình trao đổi chất, lợi cho dạ dày, sinh tân dịch...". Theo cổ nhân, ăn cháo vào mùa thu rất có ích cho sức khỏe, nhất là vào tiết đầu thu khi khí trời vẫn còn nóng ẩm dễ gây ra các bệnh lý đường tiêu hóa. Sách *Tùy tức cư ẩm thực phổ* viết: "Gạo tẻ vị ngọt tính bình, hợp với việc nấu thành cháo, cháo là một trong những đồ ăn bổ dưỡng tốt nhất".
Thứ đến, theo Học thuyết Ngũ hành, vị chua vào Can, vị cay vào Phế. Phế thuộc Kim, Can thuộc Mộc. "Vạn vật thu thu, phế khí kim vượng", nghĩa là, mùa thu vạn vật thu vào, khí kim ở Phế vượng thịnh. Nếu ăn uống nhiều đồ có vị cay thì sẽ trợ giúp cho phế khí khiến cho phế khí càng thịnh, phế kim khắc can mộc thái quá dẫn đến công năng của tạng Can bị rối loạn. Vì vậy, cổ nhân khuyên về mùa thu nên ăn uống "thiểu tân tăng toan" ("ít cay nhiều chua", cần trọng dụng nhiều các thực phẩm có vị chua nhằm tăng cường chức năng của Can và phòng ngừa phế khí quá thịnh làm hại đến Can và dùng ít thực phẩm có vị cay như hành, gừng, tỏi, ớt, hạt tiêu... Thêm nữa, mùa thu là giai đoạn quá độ từ nóng chuyển sang lạnh vì vậy không nên ăn quá nhiều đồ sống lạnh hoặc bổ béo khó tiêu dễ gây thương tổn Tỳ và Vị.
*Đầu thu nên ăn thức ăn có tính mát như giá đỗ, trứng vịt, khoai sọ...*
Cuối cùng, mùa thu ăn uống bồi bổ nên điều hòa (bình bổ) vì thời tiết mát mẻ, âm dương tương đối cân bằng, đồ ăn thức uống không nên quá nóng và quá lạnh. Ví như về mùa hạ các loại dưa như dưa hấu, dưa chuột, dưa gang...là thực phẩm thượng hạng vì có tác dụng thanh nhiệt tiêu thử mạnh, nhưng sau tiết Lập thu thì bất luận loại dưa nào dù ngon đến mấy cũng không nên ăn nhiều vì dễ làm cho dương khí của tỳ vị hư hao. Sách thuốc cổ đã viết: "Thu qua hoại đỗ" (mùa thu ăn dưa thì có hại cho đường tiêu hóa).
**ThS. Hoàng Khánh Toàn** [Phép dưỡng sinh ăn uống mùa thu](http://suckhoedoisong.vn/phep-duong-sinh-an-uong-mua-thu-n20988.html)
-
[Nghị quyết về dân số mới có nới lỏng mức sinh, số con ?](http://suckhoedoisong.vn/nghi-quyet-ve-dan-so-moi-co-noi-long-muc-sinh-so-con--n139435.html)
-
[Miền Bắc đón đợt rét mới thấp nhất dưới 8 độ C; xuất hiện bão gần Biển Đông](http://suckhoedoisong.vn/mien-bac-don-dot-ret-moi-thap-nhat-duoi-8-do-c-xuat-hien-bao-gan-bien-dong-n139469.html)
-
[Tổng thống Hàn Quốc thăm Trung Quốc: Chuyến thăm củng cố niềm tin](http://suckhoedoisong.vn/tong-thong-han-quoc-tham-trung-quoc-chuyen-tham-cung-co-niem-tin-n139463.html)
-
[Bệnh viện Việt Nam Thuỵ Điển Uông Bí: Khám tầm soát bệnh tiểu đường miễn phí](http://suckhoedoisong.vn/benh-vien-viet-nam-thuy-dien-uong-bi-kham-tam-soat-benh-tieu-duong-mien-phi-n139450.html) [Bệnh viện Việt Nam Thuỵ Điển Uông Bí: Khám tầm soát bệnh tiểu đường miễn phí](http://suckhoedoisong.vn/benh-vien-viet-nam-thuy-dien-uong-bi-kham-tam-soat-benh-tieu-duong-mien-phi-n139450.html) [Giới hạn tối đa của con người về tuổi thọ, chiều cao và hoạt động thể chất](http://suckhoedoisong.vn/gioi-han-toi-da-cua-con-nguoi-ve-tuoi-tho-chieu-cao-va-hoat-dong-the-chat-n139460.html) [9h30 sáng mai, Truyền hình trực tuyến: Trẻ biếng ăn – Cách nào xử lý?](http://suckhoedoisong.vn/9h30-sang-mai-truyen-hinh-truc-tuyen-tre-bieng-an-cach-nao-xu-ly-n138964.html) [Ðẩy lùi viêm đường tiết niệu khi mang thai](http://suckhoedoisong.vn/ay-lui-viem-duong-tiet-nieu-khi-mang-thai-n94512.html) [Tiểu đường trong thai kỳ ảnh hưởng đến sức khỏe tim mạch của thai nhi](http://suckhoedoisong.vn/tieu-duong-trong-thai-ky-anh-huong-den-suc-khoe-tim-mach-cua-thai-nhi-n139458.html)
Gửi bài viết cho tòa soạn qua email:
**bandientuskds@gmail.com** [Sức khỏe người lớn](http://suckhoedoisong.vn/suc-khoe-nguoi-lon-c85/) [Sức khỏe trẻ em](http://suckhoedoisong.vn/suc-khoe-tre-em-c84/) [Sơ cứu](http://suckhoedoisong.vn/so-cuu-c82/) [Sức khoẻ tâm thần](http://suckhoedoisong.vn/suc-khoe-tam-than-c90/) [Ẩm thực và dinh dưỡng](http://suckhoedoisong.vn/am-thuc-va-dinh-duong-c89/) [Sức khỏe và môi trường](http://suckhoedoisong.vn/suc-khoe-va-moi-truong-c88/) [Các biện pháp tránh thai](http://suckhoedoisong.vn/cac-bien-phap-tranh-thai-c87/) [Sức khoẻ sinh sản và tình dục](http://suckhoedoisong.vn/suc-khoe-sinh-san-va-tinh-duc-c86/) [Các thuật ngữ](http://suckhoedoisong.vn/cac-thuat-ngu-c73/) [Tìm hiểu cơ thể người](http://suckhoedoisong.vn/tim-hieu-co-the-nguoi-c81/) [Dược](http://suckhoedoisong.vn/duoc-c80/) [Thẩm mỹ](http://suckhoedoisong.vn/tham-my-c79/) [Trang phục](http://suckhoedoisong.vn/trang-phuc-c78/) [Rèn luyện](http://suckhoedoisong.vn/ren-luyen-c77/) [Ngôi nhà an toàn](http://suckhoedoisong.vn/ngoi-nha-an-toan-c76/) [Giải thích các xét nghiệm](http://suckhoedoisong.vn/giai-thich-cac-xet-nghiem-c75/) [Khám sức khỏe](http://suckhoedoisong.vn/kham-suc-khoe-c74/) [Dinh dưỡng phòng chống ung thư](http://suckhoedoisong.vn/dinh-duong-phong-chong-ung-thu-c100/)
-
[Vinmec xây bệnh viện 1.200 giường, áp dụng cả với bệnh nhân có bảo hiểm y tế](http://suckhoedoisong.vn/vinmec-xay-benh-vien-1200-giuong-ap-dung-ca-voi-benh-nhan-co-bao-hiem-y-te-n139422.html)SKĐS - Đại sứ đặc mệnh toàn quyền của Hoa Kỳ tại Việt Nam Daniel Kritenbrink đã đến dự và chứng kiến lễ ký kết thỏa thuận hợp tác chiến lược toàn diện giữa GE Healthcare và hệ thống Y tế Vinmec [6 lý do nên uống vitamin E và cách uống vitamin E đúng cách](http://suckhoedoisong.vn/6-ly-do-nen-uong-vitamin-e-va-cach-uong-vitamin-e-dung-cach-n94204.html) [Top 8 mẹo trị đờm hiệu quả từ thực phẩm có sẵn trong bếp](http://suckhoedoisong.vn/top-8-meo-tri-dom-hieu-qua-tu-thuc-pham-co-san-trong-bep-n98933.html) [18 loại thực phẩm giàu vitamin K](http://suckhoedoisong.vn/18-loai-thuc-pham-giau-vitamin-k-n85501.html) [Ngạc nhiên với 50 tác dụng tuyệt vời của dầu dừa](http://suckhoedoisong.vn/ngac-nhien-voi-50-tac-dung-tuyet-voi-cua-dau-dua-n79329.html)


text:
bằng cách sử dụng facebook cho thế hệ dẫn đã trở thành xu hướng mới nhất trong thế giới internet tiếp thị pay-per-click. Tôi sẽ không nói về điều đó. Những gì tôi muốn nói chuyện về là một vài chiến lược mà kết quả là dẫn miễn phí cho các nhà kinh doanh của bạn. Một dòng chảy không được yêu cầu của khách hàng tiềm năng muốn hoặc của bạn sản phẩm và dịch vụ.
1) xây dựng các trang fan hâm mộ một facebook có thể là một cách tuyệt vời để bắt đầu kết nối với khách hàng tiềm năng, nhưng chỉ nếu bạn đang cung cấp giá trị, tức là truy cập miễn phí buổi hội thảo, sách điện tử miễn phí và bất kỳ khác đào tạo miễn phí hoặc chi phí thấp. Những việc thiết lập các giá trị tuyệt vời cho các fan hâm mộ trang. Phải mất một thời gian xây dựng lòng tin và mối quan hệ với danh sách facebook của bạn, mọi người thường không quan tâm về doanh nghiệp của bạn càng nhiều càng tốt bạn làm. Tôi biết rằng tôi ghét spam vì vậy, nếu các công cụ của bạn trông spammy quá hoặc doanh nghiệp như, mọi người sẽ chỉ cần lướt quyền của tin nhắn của bạn. Nhưng nếu có một khuôn mặt mà họ có thể đặt cùng thư, nó đặt ra bạn ngoài phần còn lại của tin nhắn unbranded họ sẽ được ném bom với, đặc biệt là nếu họ đang có trong ngành công nghiệp mlm. Đó mang lại cho tôi đến điểm tiếp theo của tôi.
2) xây dựng thương hiệu cá nhân là điều cần thiết để xây dựng một sau tốt đẹp trên facebook. Càng có nhiều bạn tốt hơn! Như đã nêu trước đó, đặt một khuôn mặt để thông báo là một yếu tố quan trọng trong việc xây dựng một sau. Nó được gọi là facebook phải không? Không phải Logo cuốn sách! Tôi có được tấn của các yêu cầu để trở thành người hâm mộ và tôi chấp nhận tất cả lúc đầu, nhưng tất cả các bất ngờ tôi được ném bom trong hộp thư của tôi với thư faceless. Tôi xem bạn bè của tôi nguồn cấp dữ liệu và tôi thấy tất cả các tương tác này, nhưng tôi không có ý tưởng những người chủ sở hữu của “The Greatest đặt tuyệt vời nhà kinh doanh MLM cơ hội bao giờ phát minh ra” facebook fan hâm mộ trang. (Xin lỗi nếu đó là của bạn, tôi không bận tâm kiểm tra). Nhưng bạn nhận được điểm, thương hiệu trang fan hâm mộ của mình với chính mình là điều cần thiết trong dẫn facebook tạo ra các trò chơi.
3) bắt người tham gia fanpage của bạn ở nơi đầu tiên có thể là một bán cứng rắn trong đầu vì vậy tôi đề nghị gia nhập nhóm. Nhiều nhóm bạn tham gia, yêu cầu kết bạn thêm bạn sẽ nhận được từ những người trong các nhóm đó. Tôi biết có một số giới hạn để giữ cho nó đơn giản và ít quan trọng. Facebook đang theo dõi và họ sẽ ban cho bạn mãi mãi là ngu ngốc với người bạn thêm. Một cách khác tôi xây dựng danh sách bạn bè của tôi là thông qua twitter. Tôi chỉ đơn giản là có một tin nhắn trực tiếp tự động đi ra ngoài để bất cứ ai sau tôi và sau đó họ được nhắc nhở để theo tôi trên facebook cũng như. Đó là siêu dễ dàng và vào một ngày tốt đẹp, tôi nhận được yêu cầu kết bạn từ khoảng 25 người mà đang tìm kiếm tôi và cùng đi cho các fan hâm mộ trang. Bạn có thể theo tấn của người dân trên twitter miễn là bạn làm theo quy tắc 10%, mỗi người trong số những người sẽ có một cơ hội để theo bạn trên facebook quá!
4) tích hợp tài khoản truyền thông xã hội cũng là quan trọng. Tôi không khuyên bạn nên phun facebook của bạn nguồn cấp dữ liệu với twitter mặc dù bởi vì tôi đã nhìn thấy một số người tweeting mỗi vài phút hoặc nhiều hơn với các trang web của họ và rằng sẽ giúp bạn có bị cấm trên facebook cũng như.
Đây là những chỉ là một số chiến lược mà tôi kết hợp vào doanh nghiệp của tôi và họ làm việc rất tốt cho thế hệ dẫn facebook! Cho dù bạn quyết định sử dụng facebook cho một chiến lược tiếp thị hoặc bạn đã quyết định rằng đó là một sự lãng phí thời gian của bạn, là hoàn toàn vào bạn.
Tin tức Facebook dẫn thế hệ – thực tế hay chất thải của thời gian được cập nhật tại taifacebook.iphonevn.mobi , bạn có thể tải về máy ứng dụng facebook phiên bản mới nhất cho điện thoại để có thể truy cập fb một cách dễ dàng nhất.
Tải xuống miễn phí
Cài đặt miễn phí cho điện thoại Android, samsung galaxy, HTC, Oppo, bphone, nokia x, Zenfone, LG, sony Xperia…
Link bài viết: http://taifacebook.iphonevn.mobi/facebook-dan-the-he-thuc-te-hay-chat-thai-cua-thoi-gian/
Tags: facebook

markdown:
bằng cách sử dụng facebook cho thế hệ dẫn đã trở thành xu hướng mới nhất trong thế giới internet tiếp thị pay-per-click. Tôi sẽ không nói về điều đó. Những gì tôi muốn nói chuyện về là một vài chiến lược mà kết quả là dẫn miễn phí cho các nhà kinh doanh của bạn. Một dòng chảy không được yêu cầu của khách hàng tiềm năng muốn hoặc của bạn sản phẩm và dịch vụ.
1) xây dựng các trang fan hâm mộ một facebook có thể là một cách tuyệt vời để bắt đầu kết nối với khách hàng tiềm năng, nhưng chỉ nếu bạn đang cung cấp giá trị, tức là truy cập miễn phí buổi hội thảo, sách điện tử miễn phí và bất kỳ khác đào tạo miễn phí hoặc chi phí thấp. Những việc thiết lập các giá trị tuyệt vời cho các fan hâm mộ trang. Phải mất một thời gian xây dựng lòng tin và mối quan hệ với danh sách facebook của bạn, mọi người thường không quan tâm về doanh nghiệp của bạn càng nhiều càng tốt bạn làm. Tôi biết rằng tôi ghét spam vì vậy, nếu các công cụ của bạn trông spammy quá hoặc doanh nghiệp như, mọi người sẽ chỉ cần lướt quyền của tin nhắn của bạn. Nhưng nếu có một khuôn mặt mà họ có thể đặt cùng thư, nó đặt ra bạn ngoài phần còn lại của tin nhắn unbranded họ sẽ được ném bom với, đặc biệt là nếu họ đang có trong ngành công nghiệp mlm. Đó mang lại cho tôi đến điểm tiếp theo của tôi.
2) xây dựng thương hiệu cá nhân là điều cần thiết để xây dựng một sau tốt đẹp trên facebook. Càng có nhiều bạn tốt hơn! Như đã nêu trước đó, đặt một khuôn mặt để thông báo là một yếu tố quan trọng trong việc xây dựng một sau. Nó được gọi là facebook phải không? Không phải Logo cuốn sách! Tôi có được tấn của các yêu cầu để trở thành người hâm mộ và tôi chấp nhận tất cả lúc đầu, nhưng tất cả các bất ngờ tôi được ném bom trong hộp thư của tôi với thư faceless. Tôi xem bạn bè của tôi nguồn cấp dữ liệu và tôi thấy tất cả các tương tác này, nhưng tôi không có ý tưởng những người chủ sở hữu của “The Greatest đặt tuyệt vời nhà kinh doanh MLM cơ hội bao giờ phát minh ra” facebook fan hâm mộ trang. (Xin lỗi nếu đó là của bạn, tôi không bận tâm kiểm tra). Nhưng bạn nhận được điểm, thương hiệu trang fan hâm mộ của mình với chính mình là điều cần thiết trong dẫn facebook tạo ra các trò chơi.
3) bắt người tham gia fanpage của bạn ở nơi đầu tiên có thể là một bán cứng rắn trong đầu vì vậy tôi đề nghị gia nhập nhóm. Nhiều nhóm bạn tham gia, yêu cầu kết bạn thêm bạn sẽ nhận được từ những người trong các nhóm đó. Tôi biết có một số giới hạn để giữ cho nó đơn giản và ít quan trọng. Facebook đang theo dõi và họ sẽ ban cho bạn mãi mãi là ngu ngốc với người bạn thêm. Một cách khác tôi xây dựng danh sách bạn bè của tôi là thông qua twitter. Tôi chỉ đơn giản là có một tin nhắn trực tiếp tự động đi ra ngoài để bất cứ ai sau tôi và sau đó họ được nhắc nhở để theo tôi trên facebook cũng như. Đó là siêu dễ dàng và vào một ngày tốt đẹp, tôi nhận được yêu cầu kết bạn từ khoảng 25 người mà đang tìm kiếm tôi và cùng đi cho các fan hâm mộ trang. Bạn có thể theo tấn của người dân trên twitter miễn là bạn làm theo quy tắc 10%, mỗi người trong số những người sẽ có một cơ hội để theo bạn trên facebook quá!
4) tích hợp tài khoản truyền thông xã hội cũng là quan trọng. Tôi không khuyên bạn nên phun facebook của bạn nguồn cấp dữ liệu với twitter mặc dù bởi vì tôi đã nhìn thấy một số người tweeting mỗi vài phút hoặc nhiều hơn với các trang web của họ và rằng sẽ giúp bạn có bị cấm trên facebook cũng như.
Đây là những chỉ là một số chiến lược mà tôi kết hợp vào doanh nghiệp của tôi và họ làm việc rất tốt cho thế hệ dẫn facebook! Cho dù bạn quyết định sử dụng facebook cho một chiến lược tiếp thị hoặc bạn đã quyết định rằng đó là một sự lãng phí thời gian của bạn, là hoàn toàn vào bạn.
Tin tức
**Facebook dẫn thế hệ – thực tế hay chất thải của thời gian ** được cập nhật tại taifacebook.iphonevn.mobi , bạn có thể tải về máy ứng dụng facebook phiên bản mới nhất cho điện thoại để có thể truy cập fb một cách dễ dàng nhất.
**Tải xuống miễn phí**
Cài đặt miễn phí cho điện thoại Android, samsung galaxy, HTC, Oppo, bphone, nokia x, Zenfone, LG, sony Xperia…
Link bài viết:
[http://taifacebook.iphonevn.mobi/facebook-dan-the-he-thuc-te-hay-chat-thai-cua-thoi-gian/](http://taifacebook.iphonevn.mobi/facebook-dan-the-he-thuc-te-hay-chat-thai-cua-thoi-gian/)
Tags:

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Truncated: length

WARC-Identified-Payload-Type: text/html

Server: cloudflare-nginx

X-Content-Type-Options: nosniff

Connection: close

X-Frame-Options: SAMEORIGIN

Set-Cookie: wordpress_logged_in_044e9eaaa56b9e900b7ee28dbb82742a=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; HttpOnly

Vary: Accept-Encoding

X-XSS-Protection: 1; mode=block

Content-Type: text/html; charset=UTF-8


text:
7 cách đánh bóng website của bạn
Chia sẻ: Nguyễn Kim Lượng | Ngày: | Loại File: DOC | Số trang:2
106
lượt xem 33
download
lượt xem 33
download
7 cách đánh bóng website của bạn
Mô tả tài liệu
Download Vui lòng tải xuống để xem tài liệu đầy đủ
Chúng ta đang trong th ở ời kỳ suy thoái và công việc kinh doanh của bạn có thể cũng khựng lại so với trước đây. Nhưng dù ở thời điểm nào thì cũng nên xem xét lại toàn bộ hoạt động của công ty bạn, xem vấn đề nào cần lưu ý, trong đó có cả vấn đề website của bạn.
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
CÓ THỂ BẠN MUỐN DOWNLOAD

markdown:
# 7 cách đánh bóng website của bạn
Chia sẻ: Nguyễn Kim Lượng | Ngày: | Loại File: DOC | Số trang:2
106
lượt xem 33
download
lượt xem 33
download
![](http://image1.tailieu.vn/document/thumbnail/2010/20100510/nguyenkimluong/80x100/7_cach_danh_bong_website_cua_ban_0101.jpg)
##
7 cách đánh bóng website của bạn
Mô tả tài liệu
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](http://static1.tailieu.vn/b2013az/templates/version1/default/images/down16x21.png)
Chúng ta đang trong th ở ời kỳ suy thoái và công việc kinh doanh của bạn có thể cũng khựng lại so với trước đây. Nhưng dù ở thời điểm nào thì cũng nên xem xét lại toàn bộ hoạt động của công ty bạn, xem vấn đề nào cần lưu ý, trong đó có cả vấn đề website của bạn.
Chủ đề:
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
CÓ THỂ BẠN MUỐN DOWNLOAD

WARC-Identified-Payload-Type: application/xhtml+xml

Server: Apache/2.2.31 (CentOS)

Pragma: no-cache

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Set-Cookie: TLDEVNamespace=385s1d8ucpv46cck654b08bam0; path=/; domain=.tailieu.vn; HttpOnly


text:
Các đối tượng điều khiển
Chia sẻ: Danh Ngoc | Ngày: | Loại File: PDF | Số trang:41
lượt xem 24
download
Các đối tượng điều khiển
CÁC ĐỐI TƯỢNG ĐIỀU KHIỂN Các đối tượng điều khiển (control) là các thành phần tương tác trực quan, thể hiện rõ cơ chế giao tiếp đồ họa giữa ứng dụng và người dùng. Nhờ các đối tượng này, các chương trình ứng dụng trong Windows trở nên thân thiện và dễ dùng. Ví thế, chúng là các thành phần cơ bản không thể thiếu trong hầu hết các ứng dụng. Trong chương này, chúng ta sẽ tìm hiểu các tạo lập và xử lý cho các đối tượng điều khiển thông qua các lớp (class) sau : · Lớp Button...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Các đối tượng điều khiển
- CÁC ĐỐI TƯỢNG ĐIỀU KHIỂN Các đối tượng điều khiển (control) là các thành phần tương tác trực quan, thể hiện rõ cơ chế giao tiếp đồ họa giữa ứng dụng và người dùng. Nhờ các đối tượng này, các chương trình ứng dụng trong Windows trở nên thân thiện và dễ dùng. Ví thế, chúng là các thành phần cơ bản không thể thiếu trong hầu hết các ứng dụng. Trong chương này, chúng ta sẽ tìm hiểu các tạo lập và xử lý cho các đối tượng điều khiển thông qua các lớp (class) sau : · Lớp Button (nút bấm). · Lớp Static (tĩnh). · Lớp Edit Box (soạn thảo). · Lớp List Box (danh sách). · Lớp Combo Box. · Lớp Scroll Bar (thanh cuộn). GIỚI THIỆU TỔNG QUAN Một kiểu điều khiển được xem như là một cửa sổ con. Có thể tạo nhiều cửa sổ con trong cùng một cửa sổ cha. Các cửa sổ con xác định handle cửa sổ của cha bằng cách gọi hàm : hwndParent = GetParent (hwnd); hwnd là handle của cửa sổ con cần lấy handle của cửa sổ cha. Và khi đã lấy được handle của cửa sổ cha, cửa sổ con có quyền gởi các thông điệp đến cửa sổ cha thông qua hàm. SendMessage(hwndParent, message, wParam, lParam); message là thông điệp cần gởi đến thủ tục xử lý của cửa sổ cha. wParam là chỉ danh ID của cửa sổ con, còn lParam ghi lại trạng thái của cửa sổ con. Vậy chúng ta có thể tạo một thành phần điều khiển dạng cửa sổ con hay còn gọi là "child window control". Cửa sổ con có nhiệm vụ xử lý các thông điệp như bàn
- phím, thông điệp chuột và thông báo cho cửa sổ cha khi trạng thái của cửa sổ con thay đổi. Như vậy cửa sổ con trở thành công cụ giao tiếp (cho phép nhập và xuất) giữa người dùng với chương trình. Tuy chúng ta có thể tạo ra một cửa sổ con cho chính mình, nhưng chúng ta nên tận dụng các lớp cửa sổ con đã được Windows định nghĩa sẵn hay còn gọi là những kiểu điều khiển chuẩn. Những kiểu điều khiển chuẩn này thường là các nút bấm (button), hộp kiểm tra (check box), hộp soạn thảo (edit box), hộp danh sách (list box), combo box, các thanh cuộn và chuỗi chữ. Ví dụ muốn tạo ra một nút bấm ở trên màn hình chỉ cần gọi hàm CreateWindows, mà chẳng cần phải quan tâm đến cách vẽ, cách nhận chuột hay là chớp khi bị kích hoạt. Tất cả điều này đều do Windows xử lý. Điều quan trọng làphải chặn thông điệp WM_COMMAND của các điều khiển để xử lý thông điệp này theo những mục đích khác nhau. Các kiểu điều khiển con thường được dùng trong hộp thoại. Như đã minh họa trong chương 2, ở đó các điều khiển nhận hộp thoại làm cửa sổ cha. Tuy nhiên, cũng có thể tạo các kiểu điều khiển con trực tiếp trên vùng cửa sổ chính, bằng cách gọi hàm CreateWindow và điều chỉnh vị trí cùng với kích thước của nó cho thích hợp bằng hàm MoveWindow. Thủ tục xử lý thông điệp của cửa sổ cha gửi các thông điệp đến các khiểu điều khiển con, và ngược lại các child window control gởi các thông điệp để yêu cầu cửa sổ cha xử lý các thông điệp đó. Để tạo một cửa sổ ứng dụng bình thường. Đầu tiên phải đăng ký lớp cửa sổ bằng hàm RegisterClass. Tiếp theo là khởi tạo lớp đã đăng ký thông qua hàm CreateWindow. Còn trường hợp muốn tạo một lớp đã được định nghĩa sẵn thì không cần đăng ký cho lớp cửa sổ con muốn tạo. Sử dụng các kiểu điều khiển trực tiếp trên cửa sổ chính đòi hỏi các tác vụ cấp thấp hơn so với dùng các kiểu điều khiển trên hộp thoại. Và các kiểu điều khiển tạo ra trên cửa sổ chính không có hỗ trợ các tiện ích. Ví dụ như chúng ta không thể sử dụng phím bấm tab để chuyển focus giữa các kiểu điều khiển với nhau. LỚP BUTTON Để tìm hiểu các kiểu điều khiển, xem xét ví dụ 3.1 sau. Trong ví dụ này đã tạo ra 9 cửa sổ con chuẩn trên một cửa sổ cha như hình 3.1. Nhấp chuột vào các nút, lúc đó các nút sẽ gởi thông điệp WM_COMMAND đến thủ tục xử lý thông điệp WndProc của cửa sổ cha. Thủ tục WndProc xử lý và in ra màn hình các thông số lParam và wParam của thông điệp gởi tới này.Trong đó lParam là handle của cửa sổ con gởi thông điệp đến cửa sổ cha. wParam có hai phần LOWORD và HIWORD, LOWORD cho biết ID của cửa sổ con, HIWORD là mã thông báo. Mã thông báo nút bấm là một trong những giá trị sau.
- Định danh mã thông báo Button Giá trị BN_CLICKED 0 BN_PAINT 1 BN_HILETE hay BN_PUSHED 2 BN_UNHILITE hay 3 BN_UNPHUSHED BN_DISABLE 4 BN_DOUBLECLICKED hay 5 BN_DBCLICK BN_SETFOCUS 6 BN_KILLFOCUS 7 Bảng Định danh mã thông báo Button Không bao giờ thấy được các giá trị của nút bấm, chỉ biết rằng giá trị từ 1 đến 4 dành cho kiểu button BS_USERBUTTON, giá trị 5 dành cho kiểu BS_RADIOBUTTON, BS_AUTORADIOBUTTON, BS_OWNEDRAW, hay các nút bấm khác nếu nút bấm đó bao gồm kiểu BS_NOTYFY. Giá trị 5,6 dành cho các kiểu nút bấm bao gồm cả cờ NOTYFY. Sau đây là chương trình chính. v CONTROL1.CPP (trích dẫn) struct { int iStyle ; TCHAR *szText ; } button[ ] = {
- BS_PUSHBUTTON, TEXT ("PUSHBUTTON"), BS_DEFPUSHBUTTON, TEXT ("DEFPUSHBUTTON"), BS_CHECKBOX, TEXT ("CHECKBOX"), BS_AUTOCHECKBOX, TEXT ("AUTOCHECKBOX"), BS_RADIOBUTTON, TEXT ("RADIOBUTTON"), BS_3STATE, TEXT ("3STATE"), BS_AUTO3STATE, TEXT ("AUTO3STATE"), BS_GROUPBOX, TEXT ("GROUPBOX"), BS_AUTORADIOBUTTON, TEXT ("AUTORADIO") }; #define NUM (sizeof(button) / sizeof(button[0])) LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static HWND hwndButton[NUM] ; static RECT rect ; static TCHAR szTop[] = TEXT("message wParam lParam"), szUnd[] = TEXT("_______ ______ ______"), szFormat[] = TEXT("%-16s%04X-%04X %04X-%04X"), szBuffer[50]; static int cxChar, cyChar ; HDC hdc ;
- PAINTSTRUCT ps ; int i ; switch (message) { case WM_CREATE : cxChar = LOWORD(GetDialogBaseUnits()) ; cyChar = HIWORD(GetDialogBaseUnits()) ; for (i = 0 ; i < NUM ; i++) hwndButton[i] = CreateWindow(TEXT("button"), button[i].szText, WS_CHILD|WS_VISIBLE|button[i].iStyle, cxChar, cyChar*(1+2*i), 20*cxChar, 7*cyChar/4, hwnd, (HMENU)i, ((LPCREATESTRUCT)lParam)->hInstance, NULL) ; return 0 ; case WM_SIZE : rect.left = 24*cxChar ; rect.top = 2*cyChar ; rect.right = LOWORD(lParam) ; rect.bottom = HIWORD(lParam) ; return 0 ; case WM_PAINT : InvalidateRect (hwnd, &rect, TRUE) ; hdc = BeginPaint (hwnd, &ps) ; SelectObject(hdc,GetStockObject(SYSTEM_FIXED_FONT));
- SetBkMode (hdc, TRANSPARENT) ; TextOut (hdc, 24 * cxChar, cyChar, szTop, lstrlen (szTop)); TextOut (hdc, 24 * cxChar, cyChar, szUnd, lstrlen (szUnd)) ; EndPaint (hwnd, &ps) ; return 0 ; case WM_DRAWITEM : case WM_COMMAND : ScrollWindow (hwnd, 0, -cyChar, &rect, &rect) ; hdc = GetDC (hwnd) ; SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT)); TextOut (hdc, 24*cxChar, cyChar*(rect.bottom/cyChar-1), szBuffer, wsprintf (szBuffer, szFormat, message==WM_DRAWITEM ? TEXT ("WM_DRAWITEM") : TEXT ("WM_COMMAND"), HIWORD (wParam), LOWORD (wParam), HIWORD (lParam), LOWORD (lParam))) ; ReleaseDC (hwnd, hdc); ValidateRect (hwnd, &rect); break; case WM_DESTROY : PostQuitMessage(0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; }
- Để tạo ra một child window control bạn dùng cấu trúc CreateWindow với các thông số như sau. · Tên lớp : TEXT ("button") · Text cửa sổ : Button[i].szText · Kiểu cửa sổ : WS_CHILD | WS_VISIBLE | button[i].iStyle · Vị trí x : cxChar · Vị trí y : cyChar*( 1+2*i ) · Chiều rộng : 20*xChar · Chiều cao : 7*yChar*4 · Handle cửa sổ cha : hwnd · Chỉ danh của cửa sổ con : (HMENU) i · Thẻ quản Handle : ((LPCREATESTRUCT) lParam-> hInstance, NULL) ; · Các thông số thêm : NULL Trong đó tên lớp là cố định. Tên cửa sổ do chúng ta đặt. Kiểu cửa sổ sử dụng là WS_CHILD, WS_VISIBLE và một trong 9 kiểu button (BS_PUSHBUTTON, BS_CHECKBOX,...). Tiếp theo là 4 thông số xác định ví trí x, ví trí y, kích thước theo chiều rộng, kích thước chiều cao của cửa sổ con trên vùng client của cửa sổ cha. hwnd là handle của cửa sổ cha. ID là chỉ danh của mỗi cửa sổ con (mỗi cửa sổ con có duy nhất mỗi số ID). ID này phải ép kiểu HMENU để chỉ định trình đơn. lParam thực chất là một con trỏ đến cấu trúc LPCREATESTRUCT có thành phần hInstance. Dó đó muốn lấy thẻ quản hInstance thì phải ép kiểu lParam. Lớp Push Button Trong ví dụ 3.1 có hai Push Button được tạo ra bằng hàm CreateWindow với kích thước và ví trí được xác định bởi người lập trình. Các Push Button được sử dụng để bật tắt một hành động tức thời chứ không giữ được trạng thái bật hay tắt
- lâu dài như checkbox được. Trên đây là hai kiểu cửa sổ BS_PUSHBUTTON và BS_DEFBUTTON (kiểu nút bấm mặc định). Hai kiểu này khi thiết kế thì khác nhau nhưng khi sử dụng thì nó có chức năng hoàn toàn giống nhau. Khi nhấn chuột vào nút này thì nút này gởi thông điệp WM_COMMAND đến cửa sổ cha với mã thông báo BN_CLICK. Có thể tác động đến nút bấm này bằng cách gọi hàm. SendMessage( hwndButton, BM_SETSTASE, 1, 0 ); Nếu muốn nút nhấn này trở lại trạng thái bình thường thì gọi hàm : SendMessage(hwndButton, BM_SETSTASE, 0, 0 ); hwndButton là định danh của cửa sổ con được trả về bởi hàm CreateWindow. Lớp Check Box Một check box là là một hộp vuông kèm theo chữ. Thông thường chữ nằm ở bên trái của hộp. Tuy nhiên, cũng có thể đặt chữ nằm ở bên phải bằng cách thêm vào kiểu BS_LEFTTEXT khi tạo một button. Các check box cho phép người dùng chọn các tùy chọn, nó hoạt động như một công tắc. Có hai loại check box thông dụng đó là BS_CHECKBOX và BS_AUTOCHECKBOX. Khi sử dụng loại BS_CHECKBOX, chúng ta tự đặt dấu check box bằng cách gởi đến kiểu điều khiển này thông điệp BS_SETCHECK. Thông số wParam trong hàm SendMessage được đặt giá trị 1 để tạo đánh dấu, và bằng 0 khi muốn hủy đánh dấu. Lấy trạng thái của một check box bằng cách gởi đến kiểu điều khiển này thông điệp BM_GETCHECK. Dùng đoạn chương trình sau để bật tắt dấu check khi xử lý thông điệp WM_COMMAND được gởi đến từ các kiểu điều khiển. SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)!SendMessage( (HWND)lParam, BM_GETCHECK, 0, 0), 0); Chú ý toán tử ! (NOT) đứng trước hàm SendMessage. Giá trị lParam là handle của cửa sổ con gởi đến cửa sổ cha trong thông điệp WM_COMMAND. Muốn biết trạng thái của check box nào đó thì gởi tới nó thông điệp BM_GETCHECK. Để khởi động một check box loại BS_CHECKBOX với trạng thái được đánh dấu, bằng cách gởi đến nó một thông điệp BM_SETCHECK theo cấu trúc. SendMessage (hwndButton,BM_SETCHECK, 1, 0); Còn check box BS_AUTOCHECK là loại nút bấm mà tự nó đánh dấu bật hay tắt cho chính nó. Muốn lấy trạng thái của check box hiện hành, chỉ cần gởi thông điệp BM_GETCHECK đến kiểu điều khiển này theo cấu trúc.
- iCheck = SendMessage (hwndButton, BM_SETCHECK, 1, 0); iCheck mang giá trị TRUE nếu check box ở trạng thái chọn, còn ngược lại iCheck mang giá trị FALSE. Ngoài ra còn có hai loại check box khác là BS_3STATE và BS_AUTO3STATE. Hai loại này còn có thêm trạng thái thứ 3, đó là trạng thái nút check box có màu xám xuất hiện khi bạn gởi thông điệp WM_SETCHECK với tham số wParam bằng 2 đến check box này. Màu xám cho biết người dùng chọn lựa không thích hợp hay không xác định. Lớp Radio Button Một radio button là một vòng tròn có kèm theo chữ. Tại một thời điểm chỉ có một radio button được nhấn. Các radio thường được nhóm lại để sử dụng cho việc lựa chọn duy nhất trong nhóm. Trạng thái các radio button không bật tắt như check box. Có nghĩa, khi nhấn chuột vào radio button thì button này được đánh dấu, và khi ta nhấn chuột vào một lần nữa thì radio đó cũng vẫn ở trạng thái đánh dấu. Có hai kiểu radio button là BS_RADIOBUTTON và BS_AUTORADIOBUTTON, nhưng kiểu thứ hai chỉ sử dụng trong hộp thoại. Khi nhận thông điệp WM_COMMAND từ radio button, thì chúng ta phải đánh dấu radio đó bằng cách gởi thông điệp BM_SETCHECK với thông số wParam bằng 1 như sau. SendMessage(hwndButton, BM_SETCHECK, 1, 0); Tất cả các radio button trong cùng một nhóm, nếu bạn muốn tắt dấu check thì bạn gởi đến chúng thông điệp BM_SETCHECK với thông số wParam bằng 0 như sau. SendMessage(hwndButton, BM_SETCHECK, 0, 0); Lớp Group Box Group box có kiểu BS_GROUPBOX, đây là loại button đặc biệt. Một group box chỉ đơn giản là một đường viền có dòng tiêu đề ở trên đỉnh. Group box không xử lý các thông điệp bàn phím, không xử lý các thông điệp chuột và cũng không gởi thông điệp WM_COMMAND đến cửa sổ cha của nó. Các group box thường được sử dụng bao quanh các kiểu điều khiển khác. LỚP STATIC
- Tạo ra một lớp tĩnh bằng cách sử dụng "static" khi tạo lớp cửa sổ trong hàm CreateWindow. Lớp tĩnh không nhận nhập dữ liệu từ bàn phím cũng như từ chuột, và không gởi thông điệp WM_COMMAND đến cửa sổ cha. Khi di chuyển hay nhấn chuột vào các cửa sổ con tĩnh, cửa sổ con này bẫy thông điệp WM_NCHITTEST và trả về giá trị HTTRANSPARENT đến Windows. Điều này làm cho Windows gởi cùng thông điệp WM_NCHITTEST cho cửa sổ cha. Cửa sổ cha thường gởi thông điệp này đến thủ tục DefWindowProc. Các kiểu cửa sổ tĩnh sau đây dùng để vẽ một hình chữ nhật hay một khung lên vùng client của cửa sổ con. Các kiểu FRAME là những đường bao hình chữ nhật, các kiểu RECT là những hình chữ nhật : SS_BLACKRECT, SS_GRAYRECT, SS_ WHITERECT. SS_BLACKFRAME, SS_GRAYFAME, SS_WHITEFRAME LỚP EDIT TEXT Trong một phương diện nào đó thì lớp soạn thảo (edit text) được xem là một cửa sổ được định nghĩa sẵn đơn giản nhất. Nhưng xét một khía cạnh khác thì nó lại phức tạp nhất. Dùng tên lớp "edit" cùng với các thông số ví trí x, vị trí y, chiều rộng, chiều cao trong hàm CreateWindow để tạo ra cửa sổ soạn thảo. Khi cửa sổ soạn thảo nhận focus thì chúng ta có thể gõ chữ vào, xoá các chữ, đánh dấu các chữ…vv. Các thao tác trên được Windows hỗ trợ hoàn toàn. Một trong những ứng dụng thường xuyên nhất, và đơn giản nhất của lớp soạn thảo là tạo ra một cửa sổ cho phép người dùng nhập các chữ vào. Để minh họa cho cửa sổ nhập ta xét ví dụ 3.2 sau. v EDITTEXT.CPP #include #define ID_EDIT 1 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); TCHAR szAppName[] = TEXT ("PopPad1") ; LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
- static HWND hwndEdit ; switch (message) { case WM_CREATE : hwndEdit = CreateWindow (TEXT("edit"), NULL, WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL, 0, 0, 0, 0, hwnd, (HMENU)ID_EDIT, ((LPCREATESTRUCT) lParam) -> hInstance, NULL) ; return 0 ; case WM_SETFOCUS : SetFocus (hwndEdit) ; return 0 ; case WM_SIZE : MoveWindow (hwndEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); return 0 ; case WM_COMMAND : if (LOWORD (wParam) == ID_EDIT) if ( HIWORD(wParam)==EN_ERRSPACE || HIWORD(wParam)==EN_MAXTEXT ) MessageBox(hwnd, TEXT("Edit control out of space."), szAppName, MB_OK | MB_ICONSTOP) ; return 0 ; case WM_DESTROY :
- PostQuitMessage(0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; } Hạn chế của edit box được định nghĩa sẵn là số ký tự người dùng nhập vào phải không quá 30.000 ký tự chữ. Các kiểu lớp Edit Text Trong ví dụ trên đã tạo một edit box bằng cách gọi hàm CreateWindow. Có kiểu cửa sổ là WS_CHILD, cùng một số tùy chọn. Chúng ta có thể canh trái, phải, giữa các chữ trong vùng cửa sổ edit box bằng cách thay đổi thông số kiểu cửa sổ ES_LEFT, ES_RIGHT, ES_CENTER trong hàm CreateWindow. Có thể tạo một edit control cho phép hiển thị nhiều hàng bằng cách chọn kiểu cửa sổ ES_MULTILINE. Một edit control mặc định chỉ cho phép nhập một hàng ký tự cho đến cuối edit box. Sử dụng ES_AUTOHSCROLL, ES_AUTOVSCROLL để tạo một edit control có thanh cuộn ngang, và cuộn đứng tự động. Có thể thêm thanh cuộn ngang và đứng vào edit control bằng cách sử dụng kiểu cửa sổ WS_HSCROLL, WS_VSCROLL. Dùng kiểu cửa sổ WS_BORDER để tạo đường viền cho edit control. Kích thước của edit control được xác định bằng cách gọi hàm MoveWindow khi hàm WndProc xử lý thông điệp WM_SIZE. Trong ví dụ trên thì kích thước của edit control được đặt bằng kích thước của cửa sổ chính. MoveWindow(hwndEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); Các edit control gởi thông điệp WM_COMMAND cùng các thông số wParam, lParam đến window cửa sổ cha. Với ý nghĩa : LOWORD(wParam) là ID cửa sổ con, HIWORD(wParam) là mã thông báo. lParam là handle của edit control. Mã thông báo ý nghĩa EN_SETFORCUS Endit control nhận focus nhập. EN_KILLFORCUS Endit control mất focus nhập.
- EN_CHANGE Nội dung của edit control sẽ thay đổi. EN_UPDATE Nội dung của edit control thay đổi. EN_ERRSPACE Edit control chạy quá thời gian. EN_MAXTEXT Edit control chạy quá không gian khi chèn. EN_HSCROLL Thanh cuộn đứng của edit control bị tác động. EN_VSCROLL Thanh cuộn nằm của edit control bị tác động. Bảng Danh sách mã thông báo của edit Control. Các thông điệp đến một lớp Edit Text Các thứ tự thông điệp sau cho phép cắt, sao chép, xoá các phần chữ được chọn (selected). SendMessage (hwndEdit, WM_CUT, 0, 0); SendMessage (hwndEdit, WM_COPY, 0, 0); SendMessage (hwndEdit, WM_CLEAR, 0, 0); Với WM_CUT cắt phần chữ đã được đánh dấu đưa vào vùng Clipboard. WM_COPY sao chép phần chữ đã được đánh dấu đưa vào Clipboard nhưng phần đánh dấu vẫn còn trên edit control. WM_CLEAR xóa phần chữ đã được đánh dấu mà không đưa vào clipboard. Chèn phần chữ nằm trong clipboard vào vùng soạn thảo edit control bằng cách gọi hàm. SendMessage (hwndEdit, WM_PASTE , 0, 0); Nhận bắt đầu và kết thúc của phần chữ đã chọn bằng cách gọi hàm : SendMessage (hwndEdit, EM_GETSEL, (WPARAM)&iStart, (LPARAM)&iEnd ); iStart lưu vị trí bắt đầu và iEnd lưu ví trí kết thúc.
- Để thay thế phần chữ đã chọn bằng chữ khác, ta dùng hàm ; SendMessage(hwndEdit,EM_REPLACESEL,0,(LPARAM)szString); Trong đó szString là chuỗi muốn thay thế. Đối với edit control nhiều dòng, ta đếm số dòng chữ bằng hàm. iCount = SendMessage (hwndEdit, EM_GETLINECOUNT, 0, 0); Các dòng trong edit control được đánh số bắt thứ tự từ 0. Lấy chiều dài của một dòng bằng lệnh. iLength = SendMessage (hwndEdit, EM_LINELENGTH, iLine, 0). Chép hàng này vào bộ đệm bằng cách gọi hàm. iLength = SendMessage ( hwdEdit, EM_GETLINE, iLine, (LPARAM)Buffer ). LỚP LIST BOX List box là tập hợp các chuỗi kí tự được gói gọn trong một hình chữ nhật. Một chương trình có thể thêm hoặc xóa các chuỗi trong list box bằng cách gởi các thông điệp đến thủ tục window của list box. List box control gởi thông điệp WM_COMMAND đến cửa sổ cha khi có một mục trong list box bị đánh dấu. Cửa sổ cha xác nhận các mục trong list box đã bị đánh dấu. Một list box có thể chọn được một mục hay nhiều mục cùng một lúc (tùy theo loại list box đơn hay kép). Các kiểu List Box Chúng ta tạo một cửa sổ con list box bằng hàm CreateWindow với lớp cửa sổ là "listbox" cùng với loại cửa sổ WS_CHILD. Tuy nhiên kiểu cửa sổ con mặt định này không gởi thông điệp WM_COMMAND đến cửa sổ cha, có nghĩa chương trình tự kiểm tra việc đánh dấu các danh mục trong list box. Vì thế, các kiểu điều khiển list box thường định nghĩa kiểu list box LBS_NOTYFY, điều này cho phép cửa sổ cha nhận thông điệp WM_COMMAND từ list box. Nếu muốn sắp xếp các mục trong list box thì sử dụng kiểu LBS_SORT. Theo mặc định, những list box tạo ra là những list box đơn. Vì thế, nếu muốn tạo ra một list box kép (tức list box cho phép người dùng chọn nhiều dòng cùng lúc) thì phải sử dụng loại list box LBS_MULTIPLESEL.Thông thường, List box sẽ tự cập nhật khi một mục được thêm vào. Tuy nhiên có thể ngăn cản việc cập nhật này
- bằng kiểu LBS_NOREDRAW. Việc làm này đôi khi không thích lắm, thay vào đó chúng ta có thể sử dụng thông điệp WM_SETREDRAW để ngăn chặn tạm thời việc vẽ lại của list box. Theo mặc định, các mục trong list box không có đường viền bao quanh khi hiển thị trên màn hình. Tuy nhiên, có thể thêm đường viền cho các mục bằng định danh cửa sổ WS_BORDER. Thêm thanh cuộn đứng vào list box bằng cách thêm định danh cửa sổ WS_VSCROLL. Thông thường windows định nghĩa một list box gồm các thông số sau : LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER. Ngoài ra còn có các thông số WS_SIZEBOX và WS_CAPTION dùng để thay đổi kích thước và thêm tiêu đề cho list box. Nên tạo ra một list box có chiều rộng bằng chiều dài của chuổi dài nhất trong list box cộng với chiều dài của thanh cuộn dọc. Chiều dài của thanh cuộn dọc được xác định bằng hàm. GetSystemMetrics(SM_CXVCROLL); Đặt các chuỗi vào List Box Để thêm một chuỗi vào list box ta gởi các thông điệp đến thủ tục Windows list box bằng hàm SendMessage. Khi truyền chuỗi cho hàm SendMessage thì thông số wParam là một con trỏ, trỏ đến chuỗi được kết thúc bởi ký tự NULL. Hàm SendMessage trả về mã LB_ERRSPACE (giá trị -2) khi Windows chạy quá không gian bộ nhớ dành cho list box. Hàm SendMessage trả về mã LB_ERR ( -1) khi xảy ra lỗi khác và trả về mã LB_OKAY ( 0 ) nếu thao tác thêm thành công. Nếu sử dụng kiểu LBS_SORT thì khi thêm một chuỗi vào list box chỉ cần dùng chỉ thị LB_ADDSTRING theo cấu trúc. SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM) szString); Với szString là chuỗi cần thêm vào list box. Nếu trong list box không dùng kiểu LBS_SORT thì có thể chèn một chuỗi với chỉ thị LB_INSERTSTRING cùng vị trí muốn chèn bằng hàm. SendMessage(hwndList, LB_INSERTSTRING, iIndex, (LPARAM) szString); iIndex là vị trí muốn chèn chuỗi vào. Nếu giá trị này bằng -1 thì chuỗi được chèn vào đáy của list box. Xóa một chuỗi trong list box bằng chỉ thị LB_DELETESTRING.
- SendMessage(hwndList, LB_DELETESTRING, iIndex, 0); Xóa hết các phần tử nằm trong list box thì dùng chỉ thị LB_RESETCONTENT với cấu trúc. SendMessage(hwndList, LB_LB_RESETCONTENT, 0, 0 ); Khi thêm vào hay xóa thì Windows tự cập nhật lại list box. Tuy nhiên ta cũng có thể tạm thời cản sự cập nhật này bằng cách tắt cờ vẽ lại list box. SendMessage(hwndList, WMSETREDRAW, FALSE, 0); Sau khi thực hiện xong ta bật cờ vẽ lại list box bằng hàm. SendMessage(hwndList, WMSETREDRAW, TRUE, 0); Chọn và lấy các mục trên List Box Tương tự như đặt chuỗi vào List box , chọn và lấy mục trong List box cũng phải gởi các thông điệp đến thủ tục Window List box bằng hàm SendMessage. Dùng chỉ thị LB_GETCOUNT để đếm số mục trong List box. iCount = SendMessage (hwndList, LB_GETCOUNT, 0, 0 ); Làm sáng mục chọn mặc định thì dùng LB_SETCURSEL. SendMessage (hwndList, LB_SETCURSEL, iIndex, 0 ); Nếu đặt giá trị iIndex bằng -1 thì window sẽ bỏ tất cả các mục chọn. Để chọn các mục dựa trên chữ bắt đầu của mục, ta dùng hàm. iIndex = SendMessage (hwndlist, LB_SELECTSTRING, iIndex, (LPARAM) szSearchString); iIndex là vị trí bắt đầu của việc tìm với kí tự đầu giống szSearchString. Nếu giá trị iIndex bằng -1 thì việc tìm bắt đầu từ vị trí đầu tiên. Hàm sẽ trả về giá trị tìm đượci. Nếu chuỗi không tồn tại thì hàm trả về mã lỗi LB_ERR. Xác định mục đã chọn khi nhận được thông điệp WM_COMMAND từ list box bằng hàm. iIndex = SendMessage(hwndList, LB_GETCURSEL, 0, 0);
- Hàm trả về vị trí của mục được chọn, còn ngược lại nếu không có mục nào được chọn thì hàm trả về mã lỗi LB_ERR. Muốn xác định chiều dài của một chuỗi bất kỳ có trong list box dùng hàm. iLength = SendMessage(hwndList, LB_GETTEXTLEN, iIndex, 0); Với iIndex là ví trí của chuỗi cần xác định chiều dài. Để chép chuỗi trên vào vùng đệp Buffer, ta dùng hàm. iLength = SendMessage(hwndList, LB_GETTEXT, iInde, (LPARAM) Buffer); Giá trị trả về của hai hàm trên là chiều dài của chuỗi ký tự. Nên định kích thước vùng buffer sao cho đủ chứa chiều dài của chuỗi cộng thêm ký tự kết thúc chuỗi cần ghi vào. Tuy nhiên, đối với list box chọn kép thì chúng ta không thể dùng các chỉ thị LB_SETCURSEL, LB_GETCURSEL, hoặc LB_SELECTSTRING. Thay vào đó phải dùng chỉ thị LB_SETSEL để chọn một mục mà không làm ảnh hưởng đến các mục đã chọn khác. SendMessage(hwndList, LB_SETSEL, wParam, iIndex); Tham số wParam khác 0 để chọn và làm sáng mục, bằng 0 để hủy việc chọn. Xác định trạng thái của một mục nào đó trong list box (loại list box chọn kép) dùng hàm. iSelect = SendMessage(hwndList, LB_GETSEL, iIndex, 0); Hàm trả về giá trị khác 0 nếu mục có vị trí iIndex được chọn, và bằng 0 nếu mục ở vị trí đó không được chọn. Nhận các thông điệp từ List Box Khi dùng chuột nhấn vào list box, khi đó list box nhận focus nhập. Cửa sổ cha có thể đặt focus nhập đến list box bằng hàm. SetFocus (hwndList); Khi list box nhận focus nhập, chúng ta dùng con chuột, các phím chữ, phím Spacebar để chọn các mục trong list box. List box gởi thông điệp WM_COMMAND với các thông số wParam, lParam đến cửa sổ cha với ý nghĩa :
- LOWORD (wParam) ID cửa sổ con. HIWORD (wParam) Mã thông báo. lParam Handle cửa sổ con. Mã thông báo Giá Ý nghĩa trị LBN_ERRSPACE -2 Con trol list box chạy quá không gian LBN_SELCHANGE 1 Cho biết mục chọn hiện hành đã thay đổi LBN_DBLCLK 2 Cho biết một mục đã bị double click với chuột LBN_SELCANCEL 3 Cho biết người dùng thay đổi mục chọn trong list box LBN_SETFOCUS 4 Cho biết list box đang nhận được focus nhập LBN_KILLFOCUS 5 Cho biết list box đã mất focus nhập Bảng Các giá trị của mã thông báo Mã thông báo LBN_ERRSPACE, LBN_SELCHANGE được gởi đến cửa sổ cha khi kiểu cửa sổ list box bao gồm LBS_NOTIFY. Một ứng dụng List Box Sau đây là một ví dụ về list box, kết quả chương trình sau khi chạy tTrong ví dụ này, ta tạo ra một list box gồm các phần tử cam, chanh, nho… . Khi dùng chuột hay dùng phím Spacebar cộng với phím mũi tên để chọn các mục trong list box, mục được chọn sẽ có màu tô thể hiện được chọn lựa (mặc định trong Windows là màu xanh) và nội dung mục chọn này được hiển thị lên kiểu điều khiển tĩnh nằm bên trên vùng thao tác của cửa sổ chính. Chương trình minh họa như sau v LISTBOX.CPP (trích dẫn) #include #define ID_LIST 1 #define ID_TEXT 2
- LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); void FillListBox (HWND hwndList) { int i; static TCHAR *tc[]={TEXT("cam"), TEXT("quyt"), TEXT("buoi"), TEXT("tao"), TEXT("chanh"), TEXT("xoai"), TEXT("nho")}; for(i=0; i
- (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL ) ; // tạo một control "static" hwndText = CreateWindow ( TEXT("static"), NULL, WS_CHILD | WS_VISIBLE | SS_LEFT, cxChar, cyChar, GetSystemMetrics (SM_CXSCREEN), cyChar, hwnd, (HMENU) ID_TEXT, (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL) ; FillListBox (hwndList) ; return 0 ; case WM_SETFOCUS : //đặt focus nhập cho list box SetFocus (hwndList) ; return 0 ; //xử lý các thông điệp khi chọn mục trong list box case WM_COMMAND : if (LOWORD (wParam) == ID_LIST && HIWORD (wParam) == LBN_SELCHANGE) { // lấy chỉ ví trí của mục được chọn iIndex=SendMessage(hwndList,LB_GETCURSEL, 0, 0); iLength = SendMessage (hwndList, LB_GETTEXTLEN, iIndex, 0) + 1 ; pVarName =(char*) calloc (iLength, sizeof (TCHAR)) ; SendMessage ( hwndList, LB_GETTEXT, iIndex, (LPARAM)pVarName) ; SetWindowText (hwndText, pVarName) ;
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Lý thuyết lập trình cơ bản - Chương I: Các bộ vi điều khiển 8051
13 p | 2238 | 921
-
Các cấu trúc điều khiển
8 p | 158 | 47
-
Vẽ các đối tượng trong GDI
58 p | 103 | 27
-
C++: Các cấu trúc điều khiển
4 p | 160 | 26
-
Các thao tác điều khiển màn hình
2 p | 69 | 10
-
Bài 09 - Sử dụng các control
8 p | 40 | 9
-
Bài giảng Cơ sở lập trình - Chương 3: Các cấu trúc điều khiển
56 p | 28 | 9
-
Các cấu trúc điều khiển (phần 1)
43 p | 37 | 7
-
Bài giảng Lập trình hướng đối tượng: Mảng các đối tượng - TS. Nguyễn Mạnh Hùng
18 p | 23 | 7
-
Bài giảng Phân tích thiết kế hướng đối tượng: Bài 4.2 - Vũ Thị Dương
13 p | 26 | 6
-
Các cấu trúc điều khiển (phần 2)
30 p | 35 | 6
-
19.1.Canh các đối tượng với nhau
3 p | 55 | 5
-
Bài giảng Ngôn ngữ lập trình C - Chương 5: Các toán tử điều khiển
33 p | 20 | 4
-
Bài giảng Lập trình Windows - Chương 5: Lập trình tài nguyên (2016)
16 p | 9 | 2
-
Bài giảng Tin học chuyên ngành: Chương 4 - Hoàng Xuân Dương
104 p | 21 | 1
-
Bài giảng Phương pháp lập trình - Chương 3: Các cấu trúc điều khiển (2016)
27 p | 5 | 1
-
Phương pháp điều khiển dựa vào việc định lượng đại số gia tử với bảng SAM có điều kiện
7 p | 2 | 1

markdown:
# Các đối tượng điều khiển
Chia sẻ: Danh Ngoc | Ngày: | Loại File: PDF | Số trang:41
lượt xem 24
download
![](http://image.tlvnimg.com/document/thumbnail/2010/20100509/nuoiheocuoivo/80x100/cac_doi_tuong_dieu_khien_033.jpg)
##
Các đối tượng điều khiển
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](http://static.tlvnimg.com/b2013az/templates/version1/default/images/down16x21.png)
CÁC ĐỐI TƯỢNG ĐIỀU KHIỂN Các đối tượng điều khiển (control) là các thành phần tương tác trực quan, thể hiện rõ cơ chế giao tiếp đồ họa giữa ứng dụng và người dùng. Nhờ các đối tượng này, các chương trình ứng dụng trong Windows trở nên thân thiện và dễ dùng. Ví thế, chúng là các thành phần cơ bản không thể thiếu trong hầu hết các ứng dụng. Trong chương này, chúng ta sẽ tìm hiểu các tạo lập và xử lý cho các đối tượng điều khiển thông qua các lớp (class) sau : · Lớp Button...
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
##
Nội dung Text: Các đối tượng điều khiển
- CÁC ĐỐI TƯỢNG ĐIỀU KHIỂN Các đối tượng điều khiển (control) là các thành phần tương tác trực quan, thể hiện rõ cơ chế giao tiếp đồ họa giữa ứng dụng và người dùng. Nhờ các đối tượng này, các chương trình ứng dụng trong Windows trở nên thân thiện và dễ dùng. Ví thế, chúng là các thành phần cơ bản không thể thiếu trong hầu hết các ứng dụng. Trong chương này, chúng ta sẽ tìm hiểu các tạo lập và xử lý cho các đối tượng điều khiển thông qua các lớp (class) sau : · Lớp Button (nút bấm). · Lớp Static (tĩnh). · Lớp Edit Box (soạn thảo). · Lớp List Box (danh sách). · Lớp Combo Box. · Lớp Scroll Bar (thanh cuộn). GIỚI THIỆU TỔNG QUAN Một kiểu điều khiển được xem như là một cửa sổ con. Có thể tạo nhiều cửa sổ con trong cùng một cửa sổ cha. Các cửa sổ con xác định handle cửa sổ của cha bằng cách gọi hàm : hwndParent = GetParent (hwnd); hwnd là handle của cửa sổ con cần lấy handle của cửa sổ cha. Và khi đã lấy được handle của cửa sổ cha, cửa sổ con có quyền gởi các thông điệp đến cửa sổ cha thông qua hàm. SendMessage(hwndParent, message, wParam, lParam); message là thông điệp cần gởi đến thủ tục xử lý của cửa sổ cha. wParam là chỉ danh ID của cửa sổ con, còn lParam ghi lại trạng thái của cửa sổ con. Vậy chúng ta có thể tạo một thành phần điều khiển dạng cửa sổ con hay còn gọi là "child window control". Cửa sổ con có nhiệm vụ xử lý các thông điệp như bàn
- phím, thông điệp chuột và thông báo cho cửa sổ cha khi trạng thái của cửa sổ con thay đổi. Như vậy cửa sổ con trở thành công cụ giao tiếp (cho phép nhập và xuất) giữa người dùng với chương trình. Tuy chúng ta có thể tạo ra một cửa sổ con cho chính mình, nhưng chúng ta nên tận dụng các lớp cửa sổ con đã được Windows định nghĩa sẵn hay còn gọi là những kiểu điều khiển chuẩn. Những kiểu điều khiển chuẩn này thường là các nút bấm (button), hộp kiểm tra (check box), hộp soạn thảo (edit box), hộp danh sách (list box), combo box, các thanh cuộn và chuỗi chữ. Ví dụ muốn tạo ra một nút bấm ở trên màn hình chỉ cần gọi hàm CreateWindows, mà chẳng cần phải quan tâm đến cách vẽ, cách nhận chuột hay là chớp khi bị kích hoạt. Tất cả điều này đều do Windows xử lý. Điều quan trọng làphải chặn thông điệp WM_COMMAND của các điều khiển để xử lý thông điệp này theo những mục đích khác nhau. Các kiểu điều khiển con thường được dùng trong hộp thoại. Như đã minh họa trong chương 2, ở đó các điều khiển nhận hộp thoại làm cửa sổ cha. Tuy nhiên, cũng có thể tạo các kiểu điều khiển con trực tiếp trên vùng cửa sổ chính, bằng cách gọi hàm CreateWindow và điều chỉnh vị trí cùng với kích thước của nó cho thích hợp bằng hàm MoveWindow. Thủ tục xử lý thông điệp của cửa sổ cha gửi các thông điệp đến các khiểu điều khiển con, và ngược lại các child window control gởi các thông điệp để yêu cầu cửa sổ cha xử lý các thông điệp đó. Để tạo một cửa sổ ứng dụng bình thường. Đầu tiên phải đăng ký lớp cửa sổ bằng hàm RegisterClass. Tiếp theo là khởi tạo lớp đã đăng ký thông qua hàm CreateWindow. Còn trường hợp muốn tạo một lớp đã được định nghĩa sẵn thì không cần đăng ký cho lớp cửa sổ con muốn tạo. Sử dụng các kiểu điều khiển trực tiếp trên cửa sổ chính đòi hỏi các tác vụ cấp thấp hơn so với dùng các kiểu điều khiển trên hộp thoại. Và các kiểu điều khiển tạo ra trên cửa sổ chính không có hỗ trợ các tiện ích. Ví dụ như chúng ta không thể sử dụng phím bấm tab để chuyển focus giữa các kiểu điều khiển với nhau. LỚP BUTTON Để tìm hiểu các kiểu điều khiển, xem xét ví dụ 3.1 sau. Trong ví dụ này đã tạo ra 9 cửa sổ con chuẩn trên một cửa sổ cha như hình 3.1. Nhấp chuột vào các nút, lúc đó các nút sẽ gởi thông điệp WM_COMMAND đến thủ tục xử lý thông điệp WndProc của cửa sổ cha. Thủ tục WndProc xử lý và in ra màn hình các thông số lParam và wParam của thông điệp gởi tới này.Trong đó lParam là handle của cửa sổ con gởi thông điệp đến cửa sổ cha. wParam có hai phần LOWORD và HIWORD, LOWORD cho biết ID của cửa sổ con, HIWORD là mã thông báo. Mã thông báo nút bấm là một trong những giá trị sau.
- Định danh mã thông báo Button Giá trị BN_CLICKED 0 BN_PAINT 1 BN_HILETE hay BN_PUSHED 2 BN_UNHILITE hay 3 BN_UNPHUSHED BN_DISABLE 4 BN_DOUBLECLICKED hay 5 BN_DBCLICK BN_SETFOCUS 6 BN_KILLFOCUS 7 Bảng Định danh mã thông báo Button Không bao giờ thấy được các giá trị của nút bấm, chỉ biết rằng giá trị từ 1 đến 4 dành cho kiểu button BS_USERBUTTON, giá trị 5 dành cho kiểu BS_RADIOBUTTON, BS_AUTORADIOBUTTON, BS_OWNEDRAW, hay các nút bấm khác nếu nút bấm đó bao gồm kiểu BS_NOTYFY. Giá trị 5,6 dành cho các kiểu nút bấm bao gồm cả cờ NOTYFY. Sau đây là chương trình chính. v CONTROL1.CPP (trích dẫn) struct { int iStyle ; TCHAR *szText ; } button[ ] = {
- BS_PUSHBUTTON, TEXT ("PUSHBUTTON"), BS_DEFPUSHBUTTON, TEXT ("DEFPUSHBUTTON"), BS_CHECKBOX, TEXT ("CHECKBOX"), BS_AUTOCHECKBOX, TEXT ("AUTOCHECKBOX"), BS_RADIOBUTTON, TEXT ("RADIOBUTTON"), BS_3STATE, TEXT ("3STATE"), BS_AUTO3STATE, TEXT ("AUTO3STATE"), BS_GROUPBOX, TEXT ("GROUPBOX"), BS_AUTORADIOBUTTON, TEXT ("AUTORADIO") }; #define NUM (sizeof(button) / sizeof(button[0])) LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static HWND hwndButton[NUM] ; static RECT rect ; static TCHAR szTop[] = TEXT("message wParam lParam"), szUnd[] = TEXT("_______ ______ ______"), szFormat[] = TEXT("%-16s%04X-%04X %04X-%04X"), szBuffer[50]; static int cxChar, cyChar ; HDC hdc ;
- PAINTSTRUCT ps ; int i ; switch (message) { case WM_CREATE : cxChar = LOWORD(GetDialogBaseUnits()) ; cyChar = HIWORD(GetDialogBaseUnits()) ; for (i = 0 ; i < NUM ; i++) hwndButton[i] = CreateWindow(TEXT("button"), button[i].szText, WS_CHILD|WS_VISIBLE|button[i].iStyle, cxChar, cyChar*(1+2*i), 20*cxChar, 7*cyChar/4, hwnd, (HMENU)i, ((LPCREATESTRUCT)lParam)->hInstance, NULL) ; return 0 ; case WM_SIZE : rect.left = 24*cxChar ; rect.top = 2*cyChar ; rect.right = LOWORD(lParam) ; rect.bottom = HIWORD(lParam) ; return 0 ; case WM_PAINT : InvalidateRect (hwnd, &rect, TRUE) ; hdc = BeginPaint (hwnd, &ps) ; SelectObject(hdc,GetStockObject(SYSTEM_FIXED_FONT));
- SetBkMode (hdc, TRANSPARENT) ; TextOut (hdc, 24 * cxChar, cyChar, szTop, lstrlen (szTop)); TextOut (hdc, 24 * cxChar, cyChar, szUnd, lstrlen (szUnd)) ; EndPaint (hwnd, &ps) ; return 0 ; case WM_DRAWITEM : case WM_COMMAND : ScrollWindow (hwnd, 0, -cyChar, &rect, &rect) ; hdc = GetDC (hwnd) ; SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT)); TextOut (hdc, 24*cxChar, cyChar*(rect.bottom/cyChar-1), szBuffer, wsprintf (szBuffer, szFormat, message==WM_DRAWITEM ? TEXT ("WM_DRAWITEM") : TEXT ("WM_COMMAND"), HIWORD (wParam), LOWORD (wParam), HIWORD (lParam), LOWORD (lParam))) ; ReleaseDC (hwnd, hdc); ValidateRect (hwnd, &rect); break; case WM_DESTROY : PostQuitMessage(0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; }
- Để tạo ra một child window control bạn dùng cấu trúc CreateWindow với các thông số như sau. · Tên lớp : TEXT ("button") · Text cửa sổ : Button[i].szText · Kiểu cửa sổ : WS_CHILD | WS_VISIBLE | button[i].iStyle · Vị trí x : cxChar · Vị trí y : cyChar*( 1+2*i ) · Chiều rộng : 20*xChar · Chiều cao : 7*yChar*4 · Handle cửa sổ cha : hwnd · Chỉ danh của cửa sổ con : (HMENU) i · Thẻ quản Handle : ((LPCREATESTRUCT) lParam-> hInstance, NULL) ; · Các thông số thêm : NULL Trong đó tên lớp là cố định. Tên cửa sổ do chúng ta đặt. Kiểu cửa sổ sử dụng là WS_CHILD, WS_VISIBLE và một trong 9 kiểu button (BS_PUSHBUTTON, BS_CHECKBOX,...). Tiếp theo là 4 thông số xác định ví trí x, ví trí y, kích thước theo chiều rộng, kích thước chiều cao của cửa sổ con trên vùng client của cửa sổ cha. hwnd là handle của cửa sổ cha. ID là chỉ danh của mỗi cửa sổ con (mỗi cửa sổ con có duy nhất mỗi số ID). ID này phải ép kiểu HMENU để chỉ định trình đơn. lParam thực chất là một con trỏ đến cấu trúc LPCREATESTRUCT có thành phần hInstance. Dó đó muốn lấy thẻ quản hInstance thì phải ép kiểu lParam. Lớp Push Button Trong ví dụ 3.1 có hai Push Button được tạo ra bằng hàm CreateWindow với kích thước và ví trí được xác định bởi người lập trình. Các Push Button được sử dụng để bật tắt một hành động tức thời chứ không giữ được trạng thái bật hay tắt
- lâu dài như checkbox được. Trên đây là hai kiểu cửa sổ BS_PUSHBUTTON và BS_DEFBUTTON (kiểu nút bấm mặc định). Hai kiểu này khi thiết kế thì khác nhau nhưng khi sử dụng thì nó có chức năng hoàn toàn giống nhau. Khi nhấn chuột vào nút này thì nút này gởi thông điệp WM_COMMAND đến cửa sổ cha với mã thông báo BN_CLICK. Có thể tác động đến nút bấm này bằng cách gọi hàm. SendMessage( hwndButton, BM_SETSTASE, 1, 0 ); Nếu muốn nút nhấn này trở lại trạng thái bình thường thì gọi hàm : SendMessage(hwndButton, BM_SETSTASE, 0, 0 ); hwndButton là định danh của cửa sổ con được trả về bởi hàm CreateWindow. Lớp Check Box Một check box là là một hộp vuông kèm theo chữ. Thông thường chữ nằm ở bên trái của hộp. Tuy nhiên, cũng có thể đặt chữ nằm ở bên phải bằng cách thêm vào kiểu BS_LEFTTEXT khi tạo một button. Các check box cho phép người dùng chọn các tùy chọn, nó hoạt động như một công tắc. Có hai loại check box thông dụng đó là BS_CHECKBOX và BS_AUTOCHECKBOX. Khi sử dụng loại BS_CHECKBOX, chúng ta tự đặt dấu check box bằng cách gởi đến kiểu điều khiển này thông điệp BS_SETCHECK. Thông số wParam trong hàm SendMessage được đặt giá trị 1 để tạo đánh dấu, và bằng 0 khi muốn hủy đánh dấu. Lấy trạng thái của một check box bằng cách gởi đến kiểu điều khiển này thông điệp BM_GETCHECK. Dùng đoạn chương trình sau để bật tắt dấu check khi xử lý thông điệp WM_COMMAND được gởi đến từ các kiểu điều khiển. SendMessage((HWND)lParam, BM_SETCHECK, (WPARAM)!SendMessage( (HWND)lParam, BM_GETCHECK, 0, 0), 0); Chú ý toán tử ! (NOT) đứng trước hàm SendMessage. Giá trị lParam là handle của cửa sổ con gởi đến cửa sổ cha trong thông điệp WM_COMMAND. Muốn biết trạng thái của check box nào đó thì gởi tới nó thông điệp BM_GETCHECK. Để khởi động một check box loại BS_CHECKBOX với trạng thái được đánh dấu, bằng cách gởi đến nó một thông điệp BM_SETCHECK theo cấu trúc. SendMessage (hwndButton,BM_SETCHECK, 1, 0); Còn check box BS_AUTOCHECK là loại nút bấm mà tự nó đánh dấu bật hay tắt cho chính nó. Muốn lấy trạng thái của check box hiện hành, chỉ cần gởi thông điệp BM_GETCHECK đến kiểu điều khiển này theo cấu trúc.
- iCheck = SendMessage (hwndButton, BM_SETCHECK, 1, 0); iCheck mang giá trị TRUE nếu check box ở trạng thái chọn, còn ngược lại iCheck mang giá trị FALSE. Ngoài ra còn có hai loại check box khác là BS_3STATE và BS_AUTO3STATE. Hai loại này còn có thêm trạng thái thứ 3, đó là trạng thái nút check box có màu xám xuất hiện khi bạn gởi thông điệp WM_SETCHECK với tham số wParam bằng 2 đến check box này. Màu xám cho biết người dùng chọn lựa không thích hợp hay không xác định. Lớp Radio Button Một radio button là một vòng tròn có kèm theo chữ. Tại một thời điểm chỉ có một radio button được nhấn. Các radio thường được nhóm lại để sử dụng cho việc lựa chọn duy nhất trong nhóm. Trạng thái các radio button không bật tắt như check box. Có nghĩa, khi nhấn chuột vào radio button thì button này được đánh dấu, và khi ta nhấn chuột vào một lần nữa thì radio đó cũng vẫn ở trạng thái đánh dấu. Có hai kiểu radio button là BS_RADIOBUTTON và BS_AUTORADIOBUTTON, nhưng kiểu thứ hai chỉ sử dụng trong hộp thoại. Khi nhận thông điệp WM_COMMAND từ radio button, thì chúng ta phải đánh dấu radio đó bằng cách gởi thông điệp BM_SETCHECK với thông số wParam bằng 1 như sau. SendMessage(hwndButton, BM_SETCHECK, 1, 0); Tất cả các radio button trong cùng một nhóm, nếu bạn muốn tắt dấu check thì bạn gởi đến chúng thông điệp BM_SETCHECK với thông số wParam bằng 0 như sau. SendMessage(hwndButton, BM_SETCHECK, 0, 0); Lớp Group Box Group box có kiểu BS_GROUPBOX, đây là loại button đặc biệt. Một group box chỉ đơn giản là một đường viền có dòng tiêu đề ở trên đỉnh. Group box không xử lý các thông điệp bàn phím, không xử lý các thông điệp chuột và cũng không gởi thông điệp WM_COMMAND đến cửa sổ cha của nó. Các group box thường được sử dụng bao quanh các kiểu điều khiển khác. LỚP STATIC
- Tạo ra một lớp tĩnh bằng cách sử dụng "static" khi tạo lớp cửa sổ trong hàm CreateWindow. Lớp tĩnh không nhận nhập dữ liệu từ bàn phím cũng như từ chuột, và không gởi thông điệp WM_COMMAND đến cửa sổ cha. Khi di chuyển hay nhấn chuột vào các cửa sổ con tĩnh, cửa sổ con này bẫy thông điệp WM_NCHITTEST và trả về giá trị HTTRANSPARENT đến Windows. Điều này làm cho Windows gởi cùng thông điệp WM_NCHITTEST cho cửa sổ cha. Cửa sổ cha thường gởi thông điệp này đến thủ tục DefWindowProc. Các kiểu cửa sổ tĩnh sau đây dùng để vẽ một hình chữ nhật hay một khung lên vùng client của cửa sổ con. Các kiểu FRAME là những đường bao hình chữ nhật, các kiểu RECT là những hình chữ nhật : SS_BLACKRECT, SS_GRAYRECT, SS_ WHITERECT. SS_BLACKFRAME, SS_GRAYFAME, SS_WHITEFRAME LỚP EDIT TEXT Trong một phương diện nào đó thì lớp soạn thảo (edit text) được xem là một cửa sổ được định nghĩa sẵn đơn giản nhất. Nhưng xét một khía cạnh khác thì nó lại phức tạp nhất. Dùng tên lớp "edit" cùng với các thông số ví trí x, vị trí y, chiều rộng, chiều cao trong hàm CreateWindow để tạo ra cửa sổ soạn thảo. Khi cửa sổ soạn thảo nhận focus thì chúng ta có thể gõ chữ vào, xoá các chữ, đánh dấu các chữ…vv. Các thao tác trên được Windows hỗ trợ hoàn toàn. Một trong những ứng dụng thường xuyên nhất, và đơn giản nhất của lớp soạn thảo là tạo ra một cửa sổ cho phép người dùng nhập các chữ vào. Để minh họa cho cửa sổ nhập ta xét ví dụ 3.2 sau. v EDITTEXT.CPP #include #define ID_EDIT 1 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); TCHAR szAppName[] = TEXT ("PopPad1") ; LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
- static HWND hwndEdit ; switch (message) { case WM_CREATE : hwndEdit = CreateWindow (TEXT("edit"), NULL, WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL, 0, 0, 0, 0, hwnd, (HMENU)ID_EDIT, ((LPCREATESTRUCT) lParam) -> hInstance, NULL) ; return 0 ; case WM_SETFOCUS : SetFocus (hwndEdit) ; return 0 ; case WM_SIZE : MoveWindow (hwndEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); return 0 ; case WM_COMMAND : if (LOWORD (wParam) == ID_EDIT) if ( HIWORD(wParam)==EN_ERRSPACE || HIWORD(wParam)==EN_MAXTEXT ) MessageBox(hwnd, TEXT("Edit control out of space."), szAppName, MB_OK | MB_ICONSTOP) ; return 0 ; case WM_DESTROY :
- PostQuitMessage(0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; } Hạn chế của edit box được định nghĩa sẵn là số ký tự người dùng nhập vào phải không quá 30.000 ký tự chữ. Các kiểu lớp Edit Text Trong ví dụ trên đã tạo một edit box bằng cách gọi hàm CreateWindow. Có kiểu cửa sổ là WS_CHILD, cùng một số tùy chọn. Chúng ta có thể canh trái, phải, giữa các chữ trong vùng cửa sổ edit box bằng cách thay đổi thông số kiểu cửa sổ ES_LEFT, ES_RIGHT, ES_CENTER trong hàm CreateWindow. Có thể tạo một edit control cho phép hiển thị nhiều hàng bằng cách chọn kiểu cửa sổ ES_MULTILINE. Một edit control mặc định chỉ cho phép nhập một hàng ký tự cho đến cuối edit box. Sử dụng ES_AUTOHSCROLL, ES_AUTOVSCROLL để tạo một edit control có thanh cuộn ngang, và cuộn đứng tự động. Có thể thêm thanh cuộn ngang và đứng vào edit control bằng cách sử dụng kiểu cửa sổ WS_HSCROLL, WS_VSCROLL. Dùng kiểu cửa sổ WS_BORDER để tạo đường viền cho edit control. Kích thước của edit control được xác định bằng cách gọi hàm MoveWindow khi hàm WndProc xử lý thông điệp WM_SIZE. Trong ví dụ trên thì kích thước của edit control được đặt bằng kích thước của cửa sổ chính. MoveWindow(hwndEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); Các edit control gởi thông điệp WM_COMMAND cùng các thông số wParam, lParam đến window cửa sổ cha. Với ý nghĩa : LOWORD(wParam) là ID cửa sổ con, HIWORD(wParam) là mã thông báo. lParam là handle của edit control. Mã thông báo ý nghĩa EN_SETFORCUS Endit control nhận focus nhập. EN_KILLFORCUS Endit control mất focus nhập.
- EN_CHANGE Nội dung của edit control sẽ thay đổi. EN_UPDATE Nội dung của edit control thay đổi. EN_ERRSPACE Edit control chạy quá thời gian. EN_MAXTEXT Edit control chạy quá không gian khi chèn. EN_HSCROLL Thanh cuộn đứng của edit control bị tác động. EN_VSCROLL Thanh cuộn nằm của edit control bị tác động. Bảng Danh sách mã thông báo của edit Control. Các thông điệp đến một lớp Edit Text Các thứ tự thông điệp sau cho phép cắt, sao chép, xoá các phần chữ được chọn (selected). SendMessage (hwndEdit, WM_CUT, 0, 0); SendMessage (hwndEdit, WM_COPY, 0, 0); SendMessage (hwndEdit, WM_CLEAR, 0, 0); Với WM_CUT cắt phần chữ đã được đánh dấu đưa vào vùng Clipboard. WM_COPY sao chép phần chữ đã được đánh dấu đưa vào Clipboard nhưng phần đánh dấu vẫn còn trên edit control. WM_CLEAR xóa phần chữ đã được đánh dấu mà không đưa vào clipboard. Chèn phần chữ nằm trong clipboard vào vùng soạn thảo edit control bằng cách gọi hàm. SendMessage (hwndEdit, WM_PASTE , 0, 0); Nhận bắt đầu và kết thúc của phần chữ đã chọn bằng cách gọi hàm : SendMessage (hwndEdit, EM_GETSEL, (WPARAM)&iStart, (LPARAM)&iEnd ); iStart lưu vị trí bắt đầu và iEnd lưu ví trí kết thúc.
- Để thay thế phần chữ đã chọn bằng chữ khác, ta dùng hàm ; SendMessage(hwndEdit,EM_REPLACESEL,0,(LPARAM)szString); Trong đó szString là chuỗi muốn thay thế. Đối với edit control nhiều dòng, ta đếm số dòng chữ bằng hàm. iCount = SendMessage (hwndEdit, EM_GETLINECOUNT, 0, 0); Các dòng trong edit control được đánh số bắt thứ tự từ 0. Lấy chiều dài của một dòng bằng lệnh. iLength = SendMessage (hwndEdit, EM_LINELENGTH, iLine, 0). Chép hàng này vào bộ đệm bằng cách gọi hàm. iLength = SendMessage ( hwdEdit, EM_GETLINE, iLine, (LPARAM)Buffer ). LỚP LIST BOX List box là tập hợp các chuỗi kí tự được gói gọn trong một hình chữ nhật. Một chương trình có thể thêm hoặc xóa các chuỗi trong list box bằng cách gởi các thông điệp đến thủ tục window của list box. List box control gởi thông điệp WM_COMMAND đến cửa sổ cha khi có một mục trong list box bị đánh dấu. Cửa sổ cha xác nhận các mục trong list box đã bị đánh dấu. Một list box có thể chọn được một mục hay nhiều mục cùng một lúc (tùy theo loại list box đơn hay kép). Các kiểu List Box Chúng ta tạo một cửa sổ con list box bằng hàm CreateWindow với lớp cửa sổ là "listbox" cùng với loại cửa sổ WS_CHILD. Tuy nhiên kiểu cửa sổ con mặt định này không gởi thông điệp WM_COMMAND đến cửa sổ cha, có nghĩa chương trình tự kiểm tra việc đánh dấu các danh mục trong list box. Vì thế, các kiểu điều khiển list box thường định nghĩa kiểu list box LBS_NOTYFY, điều này cho phép cửa sổ cha nhận thông điệp WM_COMMAND từ list box. Nếu muốn sắp xếp các mục trong list box thì sử dụng kiểu LBS_SORT. Theo mặc định, những list box tạo ra là những list box đơn. Vì thế, nếu muốn tạo ra một list box kép (tức list box cho phép người dùng chọn nhiều dòng cùng lúc) thì phải sử dụng loại list box LBS_MULTIPLESEL.Thông thường, List box sẽ tự cập nhật khi một mục được thêm vào. Tuy nhiên có thể ngăn cản việc cập nhật này
- bằng kiểu LBS_NOREDRAW. Việc làm này đôi khi không thích lắm, thay vào đó chúng ta có thể sử dụng thông điệp WM_SETREDRAW để ngăn chặn tạm thời việc vẽ lại của list box. Theo mặc định, các mục trong list box không có đường viền bao quanh khi hiển thị trên màn hình. Tuy nhiên, có thể thêm đường viền cho các mục bằng định danh cửa sổ WS_BORDER. Thêm thanh cuộn đứng vào list box bằng cách thêm định danh cửa sổ WS_VSCROLL. Thông thường windows định nghĩa một list box gồm các thông số sau : LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER. Ngoài ra còn có các thông số WS_SIZEBOX và WS_CAPTION dùng để thay đổi kích thước và thêm tiêu đề cho list box. Nên tạo ra một list box có chiều rộng bằng chiều dài của chuổi dài nhất trong list box cộng với chiều dài của thanh cuộn dọc. Chiều dài của thanh cuộn dọc được xác định bằng hàm. GetSystemMetrics(SM_CXVCROLL); Đặt các chuỗi vào List Box Để thêm một chuỗi vào list box ta gởi các thông điệp đến thủ tục Windows list box bằng hàm SendMessage. Khi truyền chuỗi cho hàm SendMessage thì thông số wParam là một con trỏ, trỏ đến chuỗi được kết thúc bởi ký tự NULL. Hàm SendMessage trả về mã LB_ERRSPACE (giá trị -2) khi Windows chạy quá không gian bộ nhớ dành cho list box. Hàm SendMessage trả về mã LB_ERR ( -1) khi xảy ra lỗi khác và trả về mã LB_OKAY ( 0 ) nếu thao tác thêm thành công. Nếu sử dụng kiểu LBS_SORT thì khi thêm một chuỗi vào list box chỉ cần dùng chỉ thị LB_ADDSTRING theo cấu trúc. SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM) szString); Với szString là chuỗi cần thêm vào list box. Nếu trong list box không dùng kiểu LBS_SORT thì có thể chèn một chuỗi với chỉ thị LB_INSERTSTRING cùng vị trí muốn chèn bằng hàm. SendMessage(hwndList, LB_INSERTSTRING, iIndex, (LPARAM) szString); iIndex là vị trí muốn chèn chuỗi vào. Nếu giá trị này bằng -1 thì chuỗi được chèn vào đáy của list box. Xóa một chuỗi trong list box bằng chỉ thị LB_DELETESTRING.
- SendMessage(hwndList, LB_DELETESTRING, iIndex, 0); Xóa hết các phần tử nằm trong list box thì dùng chỉ thị LB_RESETCONTENT với cấu trúc. SendMessage(hwndList, LB_LB_RESETCONTENT, 0, 0 ); Khi thêm vào hay xóa thì Windows tự cập nhật lại list box. Tuy nhiên ta cũng có thể tạm thời cản sự cập nhật này bằng cách tắt cờ vẽ lại list box. SendMessage(hwndList, WMSETREDRAW, FALSE, 0); Sau khi thực hiện xong ta bật cờ vẽ lại list box bằng hàm. SendMessage(hwndList, WMSETREDRAW, TRUE, 0); Chọn và lấy các mục trên List Box Tương tự như đặt chuỗi vào List box , chọn và lấy mục trong List box cũng phải gởi các thông điệp đến thủ tục Window List box bằng hàm SendMessage. Dùng chỉ thị LB_GETCOUNT để đếm số mục trong List box. iCount = SendMessage (hwndList, LB_GETCOUNT, 0, 0 ); Làm sáng mục chọn mặc định thì dùng LB_SETCURSEL. SendMessage (hwndList, LB_SETCURSEL, iIndex, 0 ); Nếu đặt giá trị iIndex bằng -1 thì window sẽ bỏ tất cả các mục chọn. Để chọn các mục dựa trên chữ bắt đầu của mục, ta dùng hàm. iIndex = SendMessage (hwndlist, LB_SELECTSTRING, iIndex, (LPARAM) szSearchString); iIndex là vị trí bắt đầu của việc tìm với kí tự đầu giống szSearchString. Nếu giá trị iIndex bằng -1 thì việc tìm bắt đầu từ vị trí đầu tiên. Hàm sẽ trả về giá trị tìm đượci. Nếu chuỗi không tồn tại thì hàm trả về mã lỗi LB_ERR. Xác định mục đã chọn khi nhận được thông điệp WM_COMMAND từ list box bằng hàm. iIndex = SendMessage(hwndList, LB_GETCURSEL, 0, 0);
- Hàm trả về vị trí của mục được chọn, còn ngược lại nếu không có mục nào được chọn thì hàm trả về mã lỗi LB_ERR. Muốn xác định chiều dài của một chuỗi bất kỳ có trong list box dùng hàm. iLength = SendMessage(hwndList, LB_GETTEXTLEN, iIndex, 0); Với iIndex là ví trí của chuỗi cần xác định chiều dài. Để chép chuỗi trên vào vùng đệp Buffer, ta dùng hàm. iLength = SendMessage(hwndList, LB_GETTEXT, iInde, (LPARAM) Buffer); Giá trị trả về của hai hàm trên là chiều dài của chuỗi ký tự. Nên định kích thước vùng buffer sao cho đủ chứa chiều dài của chuỗi cộng thêm ký tự kết thúc chuỗi cần ghi vào. Tuy nhiên, đối với list box chọn kép thì chúng ta không thể dùng các chỉ thị LB_SETCURSEL, LB_GETCURSEL, hoặc LB_SELECTSTRING. Thay vào đó phải dùng chỉ thị LB_SETSEL để chọn một mục mà không làm ảnh hưởng đến các mục đã chọn khác. SendMessage(hwndList, LB_SETSEL, wParam, iIndex); Tham số wParam khác 0 để chọn và làm sáng mục, bằng 0 để hủy việc chọn. Xác định trạng thái của một mục nào đó trong list box (loại list box chọn kép) dùng hàm. iSelect = SendMessage(hwndList, LB_GETSEL, iIndex, 0); Hàm trả về giá trị khác 0 nếu mục có vị trí iIndex được chọn, và bằng 0 nếu mục ở vị trí đó không được chọn. Nhận các thông điệp từ List Box Khi dùng chuột nhấn vào list box, khi đó list box nhận focus nhập. Cửa sổ cha có thể đặt focus nhập đến list box bằng hàm. SetFocus (hwndList); Khi list box nhận focus nhập, chúng ta dùng con chuột, các phím chữ, phím Spacebar để chọn các mục trong list box. List box gởi thông điệp WM_COMMAND với các thông số wParam, lParam đến cửa sổ cha với ý nghĩa :
- LOWORD (wParam) ID cửa sổ con. HIWORD (wParam) Mã thông báo. lParam Handle cửa sổ con. Mã thông báo Giá Ý nghĩa trị LBN_ERRSPACE -2 Con trol list box chạy quá không gian LBN_SELCHANGE 1 Cho biết mục chọn hiện hành đã thay đổi LBN_DBLCLK 2 Cho biết một mục đã bị double click với chuột LBN_SELCANCEL 3 Cho biết người dùng thay đổi mục chọn trong list box LBN_SETFOCUS 4 Cho biết list box đang nhận được focus nhập LBN_KILLFOCUS 5 Cho biết list box đã mất focus nhập Bảng Các giá trị của mã thông báo Mã thông báo LBN_ERRSPACE, LBN_SELCHANGE được gởi đến cửa sổ cha khi kiểu cửa sổ list box bao gồm LBS_NOTIFY. Một ứng dụng List Box Sau đây là một ví dụ về list box, kết quả chương trình sau khi chạy tTrong ví dụ này, ta tạo ra một list box gồm các phần tử cam, chanh, nho… . Khi dùng chuột hay dùng phím Spacebar cộng với phím mũi tên để chọn các mục trong list box, mục được chọn sẽ có màu tô thể hiện được chọn lựa (mặc định trong Windows là màu xanh) và nội dung mục chọn này được hiển thị lên kiểu điều khiển tĩnh nằm bên trên vùng thao tác của cửa sổ chính. Chương trình minh họa như sau v LISTBOX.CPP (trích dẫn) #include #define ID_LIST 1 #define ID_TEXT 2
- LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); void FillListBox (HWND hwndList) { int i; static TCHAR *tc[]={TEXT("cam"), TEXT("quyt"), TEXT("buoi"), TEXT("tao"), TEXT("chanh"), TEXT("xoai"), TEXT("nho")}; for(i=0; i
- (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL ) ; // tạo một control "static" hwndText = CreateWindow ( TEXT("static"), NULL, WS_CHILD | WS_VISIBLE | SS_LEFT, cxChar, cyChar, GetSystemMetrics (SM_CXSCREEN), cyChar, hwnd, (HMENU) ID_TEXT, (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL) ; FillListBox (hwndList) ; return 0 ; case WM_SETFOCUS : //đặt focus nhập cho list box SetFocus (hwndList) ; return 0 ; //xử lý các thông điệp khi chọn mục trong list box case WM_COMMAND : if (LOWORD (wParam) == ID_LIST && HIWORD (wParam) == LBN_SELCHANGE) { // lấy chỉ ví trí của mục được chọn iIndex=SendMessage(hwndList,LB_GETCURSEL, 0, 0); iLength = SendMessage (hwndList, LB_GETTEXTLEN, iIndex, 0) + 1 ; pVarName =(char*) calloc (iLength, sizeof (TCHAR)) ; SendMessage ( hwndList, LB_GETTEXT, iIndex, (LPARAM)pVarName) ; SetWindowText (hwndText, pVarName) ;
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Lý thuyết lập trình cơ bản - Chương I: Các bộ vi điều khiển 8051
13 p |
2238 |
921
-
Các cấu trúc điều khiển
8 p |
158 |
47
-
Vẽ các đối tượng trong GDI
58 p |
103 |
27
-
C++: Các cấu trúc điều khiển
4 p |
160 |
26
-
Các thao tác điều khiển màn hình
2 p |
69 |
10
-
Bài 09 - Sử dụng các control
8 p |
40 |
9
-
Bài giảng Cơ sở lập trình - Chương 3: Các cấu trúc điều khiển
56 p |
28 |
9
-
Các cấu trúc điều khiển (phần 1)
43 p |
37 |
7
-
Bài giảng Lập trình hướng đối tượng: Mảng các đối tượng - TS. Nguyễn Mạnh Hùng
18 p |
23 |
7
-
Bài giảng Phân tích thiết kế hướng đối tượng: Bài 4.2 - Vũ Thị Dương
13 p |
26 |
6
-
Các cấu trúc điều khiển (phần 2)
30 p |
35 |
6
-
19.1.Canh các đối tượng với nhau
3 p |
55 |
5
-
Bài giảng Ngôn ngữ lập trình C - Chương 5: Các toán tử điều khiển
33 p |
20 |
4
-
Bài giảng Lập trình Windows - Chương 5: Lập trình tài nguyên (2016)
16 p |
9 |
2
-
Bài giảng Tin học chuyên ngành: Chương 4 - Hoàng Xuân Dương
104 p |
21 |
1
-
Bài giảng Phương pháp lập trình - Chương 3: Các cấu trúc điều khiển (2016)
27 p |
5 |
1
-
Phương pháp điều khiển dựa vào việc định lượng đại số gia tử với bảng SAM có điều kiện
7 p |
2 |
1

Set-Cookie: TLDEVNamespace=jocdun00lf9js08u76gcart4n4; path=/; domain=.tailieu.vn; HttpOnly


text:
-
Sử dụng năng lượng mặt trời Panels nhiệt Đối với nhu cầu sưởi AlternativePar tamxuyensang dans Accueil le 19 Août 2016 à 15:54
giá tấm xuyên sáng
Hành tinh của chúng dựa vào năng lượng mặt trời để cung cấp năng lượng nhiệt. Vòng xoay của trái đất là trung gian nhiệt độ của nhiệt liên tục phát ra từ mặt trời. Khí quyển và quay của trái đất là rất quan trọng với sinh thái của chúng tôi do đó tạo ra chu kỳ làm mát và làm nóng nước trên và ở trên bề mặt của hành tinh chúng ta. Đó là khoảng cách mà chúng ta là từ mặt trời mà làm điều kiện cho sự sống có thể trên trái đất. Nếu chúng ta gần hơn nhiệt từ mặt trời sẽ làm cho nó quá nóng và nếu khoảng cách là xa hơn nó là quá lạnh. Các quỹ đạo elip của trái đất tạo ra mùa đối với hầu hết các khu vực. Các chu kỳ ngày đêm giữ sự cân bằng về nhiệt độ có thể sống được. Tuy nhiên trong mùa đông và đêm có tổn thất lớn về nhiệt được cần cho sự sống còn của con người. Để bù đắp cho những thời kỳ lạnh hơn và mất nhiệt, chúng tôi sử dụng các nguồn khác để sản xuất nhiệt. - báo giá tấm xuyên sáng
Đối với hàng ngàn năm gỗ đã được sử dụng làm nhiên liệu và gần đây hơn là các loại nhiên liệu hóa thạch như than đá và dầu mỏ. sự phụ thuộc vào các loại nguồn nhiên liệu đã đến tại một chi phí rất lớn và bất ngờ, sự nóng lên toàn cầu và biến đổi khí hậu. Kể từ khi mối đe dọa toàn cầu này đã được thực hiện trên toàn thế giới tin tức của nhà khoa học, chúng tôi buộc phải tìm kiếm giải pháp thay thế cho nhiệt. Trọng tâm chính của chúng tôi cho vấn đề này phải đáp ứng các tiêu chuẩn sinh thái thân thiện. Một bảng điều khiển nhiệt năng lượng mặt trời là một câu trả lời chính và là một lựa chọn rất an toàn với môi trường. Sử dụng năng lượng xung quanh mặt trời, những tấm cung cấp nhiệt cho ngôi nhà trong mùa thu mát mẻ, mùa đông và mùa xuân mát mẻ.
Mặt trời là một nguồn cung cấp vô tận của năng lượng và nó không ngừng cho ra một phổ rộng của sóng điện từ. Trong phạm vi này của năng lượng là ánh sáng nhìn thấy và hồng ngoại. Đó là các sóng ánh sáng hồng ngoại có khả năng truyền năng lượng nhiệt. Các nhiệm vụ là những cách sẽ làm việc tốt nhất để sử dụng năng lượng này. Năng lượng này từ mặt trời có thể được sử dụng và lưu trữ trong khi chúng ta cần nó. Lưu trữ và nhiệt tạo là hai phẩm chất đặc biệt của các tấm năng lượng mặt trời nhiệt.
Panels thu thập và truyền nhiệt mặt trời là phẳng để có được tiếp xúc với diện tích bề mặt nhất với ánh sáng. Để nắm bắt thêm nhiệt họ được bố trí trong một hộp mỏng và rất minh bạch. vị trí hiệu quả của các tấm phải đối mặt với mặt trời và là miễn phí các vật cản như cây xanh và các công trình khác. Trong hầu hết các trường hợp chúng được cài đặt trên mái nhà. Đen hấp thụ ánh sáng hồng ngoại của ánh nắng mặt trời tốt nhất. Để làm cho tấm hiệu quả hơn một tấm kim loại sơn màu đen được đặt trong một mạng lưới các chất lỏng chứa đầy ống được sử dụng để hấp thụ nhiệt tỏa ra từ các kim loại. Không khí, nước và hóa nhiệt chất lỏng thường được sử dụng để truyền tải nhiệt.
Thiết kế các tấm để sử dụng năng lượng nhiệt của mặt trời đòi hỏi kỹ thuật đặc biệt. Sử dụng những gì chúng ta biết về vật liệu hấp thụ và chuyển năng lượng ánh sáng mặt trời nhiệt, các tấm làm việc rất hiệu quả. Nhiệt độ 180 độ F, rất gần với điểm sôi của nước (212 độ), có thể đạt được trong bảng điều khiển năng lượng mặt trời. Trong thị trường, thiết kế mới luôn được giới thiệu là tiếp tục nâng cao hiệu quả của họ. Chìa khóa để lưu trữ và truyền năng lượng một cách tốt nhất là trong các loại chất lỏng sử dụng trong ống. - tấm xuyên sáng đẹp
Trong các tiểu bang phía tây của nhiệt lưu trữ của Hoa Kỳ từ các tấm được sử dụng vào những đêm lạnh và mùa đông. Để tiếp tục duy trì nhiệt độ của nhiệt lưu trữ vật liệu cách nhiệt chất lượng cao được sử dụng. Các yếu tố quan trọng để giảm thiểu tổn thất nhiệt độ là cách nhiệt. Sử dụng nước hoặc chất lỏng khác như một phương tiện lưu trữ nhiệt hoạt động tốt và khối lượng lớn của nó có thể được lưu giữ trong các thùng phuy hay thùng chứa khác. Một chất lỏng hiệu quả hơn như chất chống đông được sử dụng bởi vì nó là dày hơn và có thể kéo dài thời gian nhiệt nó đã hấp thụ. Một số doanh nghiệp là những chuyên gia tạo ra nhiệt ở một quy mô lớn và sử dụng khí đốt hoặc than nồi hơi để làm cho nhiệt.
lịch sử và khoa học của chúng tôi đã chứng minh rằng hệ sinh thái của chúng tôi đang gặp nguy hiểm từ việc sử dụng than đá và dầu nhiên liệu. Làm thế nào chúng tôi sẽ giải thích hành động của chúng tôi cho các thế hệ tương lai, khi chúng ta tiếp tục sử dụng hóa chất và các chất độc hại khác? Chúng tôi có trách nhiệm phải bắt đầu làm cho sự lựa chọn thân thiện với môi trường tốt hơn và bắt đầu khôi phục lại thiệt hại, chúng tôi đã làm cho trái đất. Sử dụng các tấm năng lượng mặt trời nhiệt là một ứng dụng hữu hiệu đối với các kiến thức và các nguồn tài nguyên của chúng tôi.
-
Commentaires2Jeudi 2 Février à 12:56Hey I know this is off topic but I was wondering if you knew of any widgets I
could add to my blog that automatically tweet my newest twitter
updates. I've been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like this.
Please let me know if you run into anything. I truly
enjoy reading your blog and I look forward to your new updates.3Vendredi 10 Février à 10:57This information is worth everyone's attention. When can I find out more?4Vendredi 10 Février à 19:03Paragraph writing is also a excitement, if you be acquainted with then you can write otherwise it is complicated to write.5Mercredi 22 Février à 17:24Highly energetic article, I liked that bit. Will there be a part 2?6Jeudi 23 Février à 08:54Wonderful web site. Lots of useful information here. I am sending it to several pals
ans additionally sharing in delicious. And certainly, thanks to your sweat!7Vendredi 24 Février à 16:33I got this web site from my buddy who informed me about this site and at the moment this time I am
browsing this site and reading very informative articles at this place.8Samedi 25 Février à 20:15Hello! I know tthis is kinda off topic nevertheless I'd figured I'd ask.
Would you be interested in exchanging links or maybe
guest writing a blog article or vice-versa? My site discussses a lot oof
the same subjects aas yours and I feel we could greatly benefit
from each other. If you're interested feel frse tto send mme an email.
I look forward to hearing from you! Great blog by the
way!9Mardi 28 Février à 05:44These are really impressive ideas in concerning blogging.
You have touched some pleasant things here. Any way keep up wrinting.10Mardi 28 Février à 21:27Please let me know if you're looking for a article author
for your weblog. You have some really good posts and
I think I would be a good asset. If you ever want to
take some of the load off, I'd absolutely love to write some articles for your
blog in exchange for a link back to mine. Please shoot me an email if interested.
Kudos!11Samedi 4 Mars à 11:52Excellent post. I was checking continuously this weblog and I'm impressed!
Extremely useful information specially the remaining part :) I
maintain such info much. I used to be looking for this certain info for a long
time. Thanks and good luck.12Dimanche 5 Mars à 04:01This page definitely has all of the information I wanted about this subject
and didn't know who to ask.13Jeudi 9 Mars à 06:31Everything is very open with a precise clarification of the issues.
It was truly informative. Your site is very helpful.
Thanks for sharing!14Samedi 11 Mars à 02:06Amazing! Its truly remarkable article, I have got
much clear idea concerning from this post.15Lundi 20 Mars à 17:10I think this is one of the most vital information for me.
And i am glad reading your article. But wanna
remark on few general things, The site style is wonderful,
the articles is really great : D. Good job, cheers16Mardi 4 Avril à 10:09I lkke reading an article that can mae people think.
Also, many thanks for allowing for me too
comment!17Mardi 4 Avril à 13:17Heey there just wanted too give you a qick heads up and let
you know a few of the pictures aren't loading correctly.
I'm not sure why but I think iits a linking
issue. I've tried it in two differet internet browsers annd both show the same
outcome.18Mercredi 12 Avril à 07:15Thanks for another informative website. Where else may I get
that type of information written in such an ideal manner?
I have a undertaking that I'm simply now operating on, and I've been at the look out
for such information.19Lundi 19 Juin à 07:12It's perfect time to make a few plans for the longer term and it's time to be happy.
I've learn this post and if I may just I wish to recommend
you some attention-grabbing issues or advice. Perhaps you can write
next articles relating to this article. I want to read even more issues approximately it!20Mercredi 5 Juillet à 16:23It's remarkable to pay a quick visit this web site and reading the views of all colleagues regarding this
piece of writing, while I am also eager of getting familiarity.21Mercredi 9 Août à 12:01What's up, I read your blogs like every week. Your writing
style is witty, keep doing what you're doing!
Ajouter un commentaire
for a long time and yours is the best I've came upon so far.
However, what in regards to the bottom line? Are you sure concerning the
source?

markdown:
-
# Sử dụng năng lượng mặt trời Panels nhiệt Đối với nhu cầu sưởi AlternativePar
[tamxuyensang](https://www.eklablog.com/profile/29859786)dans [Accueil](/accueil-c28842736)le 19 Août 2016 à 15:54 [giá tấm xuyên sáng](http://cosfa.com.vn/tam-xuyen-sang-3dform/)
Hành tinh của chúng dựa vào năng lượng mặt trời để cung cấp năng lượng nhiệt. Vòng xoay của trái đất là trung gian nhiệt độ của nhiệt liên tục phát ra từ mặt trời. Khí quyển và quay của trái đất là rất quan trọng với sinh thái của chúng tôi do đó tạo ra chu kỳ làm mát và làm nóng nước trên và ở trên bề mặt của hành tinh chúng ta. Đó là khoảng cách mà chúng ta là từ mặt trời mà làm điều kiện cho sự sống có thể trên trái đất. Nếu chúng ta gần hơn nhiệt từ mặt trời sẽ làm cho nó quá nóng và nếu khoảng cách là xa hơn nó là quá lạnh. Các quỹ đạo elip của trái đất tạo ra mùa đối với hầu hết các khu vực. Các chu kỳ ngày đêm giữ sự cân bằng về nhiệt độ có thể sống được. Tuy nhiên trong mùa đông và đêm có tổn thất lớn về nhiệt được cần cho sự sống còn của con người. Để bù đắp cho những thời kỳ lạnh hơn và mất nhiệt, chúng tôi sử dụng các nguồn khác để sản xuất nhiệt. -
[báo giá tấm xuyên sáng](http://cosfa.com.vn/tam-xuyen-sang-3dform/)
Đối với hàng ngàn năm gỗ đã được sử dụng làm nhiên liệu và gần đây hơn là các loại nhiên liệu hóa thạch như than đá và dầu mỏ. sự phụ thuộc vào các loại nguồn nhiên liệu đã đến tại một chi phí rất lớn và bất ngờ, sự nóng lên toàn cầu và biến đổi khí hậu. Kể từ khi mối đe dọa toàn cầu này đã được thực hiện trên toàn thế giới tin tức của nhà khoa học, chúng tôi buộc phải tìm kiếm giải pháp thay thế cho nhiệt. Trọng tâm chính của chúng tôi cho vấn đề này phải đáp ứng các tiêu chuẩn sinh thái thân thiện. Một bảng điều khiển nhiệt năng lượng mặt trời là một câu trả lời chính và là một lựa chọn rất an toàn với môi trường. Sử dụng năng lượng xung quanh mặt trời, những tấm cung cấp nhiệt cho ngôi nhà trong mùa thu mát mẻ, mùa đông và mùa xuân mát mẻ.
Mặt trời là một nguồn cung cấp vô tận của năng lượng và nó không ngừng cho ra một phổ rộng của sóng điện từ. Trong phạm vi này của năng lượng là ánh sáng nhìn thấy và hồng ngoại. Đó là các sóng ánh sáng hồng ngoại có khả năng truyền năng lượng nhiệt. Các nhiệm vụ là những cách sẽ làm việc tốt nhất để sử dụng năng lượng này. Năng lượng này từ mặt trời có thể được sử dụng và lưu trữ trong khi chúng ta cần nó. Lưu trữ và nhiệt tạo là hai phẩm chất đặc biệt của các tấm năng lượng mặt trời nhiệt.
Panels thu thập và truyền nhiệt mặt trời là phẳng để có được tiếp xúc với diện tích bề mặt nhất với ánh sáng. Để nắm bắt thêm nhiệt họ được bố trí trong một hộp mỏng và rất minh bạch. vị trí hiệu quả của các tấm phải đối mặt với mặt trời và là miễn phí các vật cản như cây xanh và các công trình khác. Trong hầu hết các trường hợp chúng được cài đặt trên mái nhà. Đen hấp thụ ánh sáng hồng ngoại của ánh nắng mặt trời tốt nhất. Để làm cho tấm hiệu quả hơn một tấm kim loại sơn màu đen được đặt trong một mạng lưới các chất lỏng chứa đầy ống được sử dụng để hấp thụ nhiệt tỏa ra từ các kim loại. Không khí, nước và hóa nhiệt chất lỏng thường được sử dụng để truyền tải nhiệt.
Thiết kế các tấm để sử dụng năng lượng nhiệt của mặt trời đòi hỏi kỹ thuật đặc biệt. Sử dụng những gì chúng ta biết về vật liệu hấp thụ và chuyển năng lượng ánh sáng mặt trời nhiệt, các tấm làm việc rất hiệu quả. Nhiệt độ 180 độ F, rất gần với điểm sôi của nước (212 độ), có thể đạt được trong bảng điều khiển năng lượng mặt trời. Trong thị trường, thiết kế mới luôn được giới thiệu là tiếp tục nâng cao hiệu quả của họ. Chìa khóa để lưu trữ và truyền năng lượng một cách tốt nhất là trong các loại chất lỏng sử dụng trong ống. -
[tấm xuyên sáng đẹp](http://tamxuyensang.inube.com/blog/5174506//)
Trong các tiểu bang phía tây của nhiệt lưu trữ của Hoa Kỳ từ các tấm được sử dụng vào những đêm lạnh và mùa đông. Để tiếp tục duy trì nhiệt độ của nhiệt lưu trữ vật liệu cách nhiệt chất lượng cao được sử dụng. Các yếu tố quan trọng để giảm thiểu tổn thất nhiệt độ là cách nhiệt. Sử dụng nước hoặc chất lỏng khác như một phương tiện lưu trữ nhiệt hoạt động tốt và khối lượng lớn của nó có thể được lưu giữ trong các thùng phuy hay thùng chứa khác. Một chất lỏng hiệu quả hơn như chất chống đông được sử dụng bởi vì nó là dày hơn và có thể kéo dài thời gian nhiệt nó đã hấp thụ. Một số doanh nghiệp là những chuyên gia tạo ra nhiệt ở một quy mô lớn và sử dụng khí đốt hoặc than nồi hơi để làm cho nhiệt.
lịch sử và khoa học của chúng tôi đã chứng minh rằng hệ sinh thái của chúng tôi đang gặp nguy hiểm từ việc sử dụng than đá và dầu nhiên liệu. Làm thế nào chúng tôi sẽ giải thích hành động của chúng tôi cho các thế hệ tương lai, khi chúng ta tiếp tục sử dụng hóa chất và các chất độc hại khác? Chúng tôi có trách nhiệm phải bắt đầu làm cho sự lựa chọn thân thiện với môi trường tốt hơn và bắt đầu khôi phục lại thiệt hại, chúng tôi đã làm cho trái đất. Sử dụng các tấm năng lượng mặt trời nhiệt là một ứng dụng hữu hiệu đối với các kiến thức và các nguồn tài nguyên của chúng tôi.
-
# Commentaires2Jeudi 2 Février à 12:56Hey I know this is off topic but I was wondering if you knew of any widgets I
could add to my blog that automatically tweet my newest twitter
updates. I've been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like this.
Please let me know if you run into anything. I truly
enjoy reading your blog and I look forward to your new updates.3Vendredi 10 Février à 10:57This information is worth everyone's attention. When can I find out more?4Vendredi 10 Février à 19:03Paragraph writing is also a excitement, if you be acquainted with then you can write otherwise it is complicated to write.5Mercredi 22 Février à 17:24Highly energetic article, I liked that bit. Will there be a part 2?6Jeudi 23 Février à 08:54Wonderful web site. Lots of useful information here. I am sending it to several pals
ans additionally sharing in delicious. And certainly, thanks to your sweat!7Vendredi 24 Février à 16:33I got this web site from my buddy who informed me about this site and at the moment this time I am
browsing this site and reading very informative articles at this place.8Samedi 25 Février à 20:15Hello! I know tthis is kinda off topic nevertheless I'd figured I'd ask.
Would you be interested in exchanging links or maybe
guest writing a blog article or vice-versa? My site discussses a lot oof
the same subjects aas yours and I feel we could greatly benefit
from each other. If you're interested feel frse tto send mme an email.
I look forward to hearing from you! Great blog by the
way!9Mardi 28 Février à 05:44These are really impressive ideas in concerning blogging.
You have touched some pleasant things here. Any way keep up wrinting.10Mardi 28 Février à 21:27Please let me know if you're looking for a article author
for your weblog. You have some really good posts and
I think I would be a good asset. If you ever want to
take some of the load off, I'd absolutely love to write some articles for your
blog in exchange for a link back to mine. Please shoot me an email if interested.
Kudos!11Samedi 4 Mars à 11:52Excellent post. I was checking continuously this weblog and I'm impressed!
Extremely useful information specially the remaining part :) I
maintain such info much. I used to be looking for this certain info for a long
time. Thanks and good luck.12Dimanche 5 Mars à 04:01This page definitely has all of the information I wanted about this subject
and didn't know who to ask.13Jeudi 9 Mars à 06:31Everything is very open with a precise clarification of the issues.
It was truly informative. Your site is very helpful.
Thanks for sharing!14Samedi 11 Mars à 02:06Amazing! Its truly remarkable article, I have got
much clear idea concerning from this post.15Lundi 20 Mars à 17:10I think this is one of the most vital information for me.
And i am glad reading your article. But wanna
remark on few general things, The site style is wonderful,
the articles is really great : D. Good job, cheers16Mardi 4 Avril à 10:09I lkke reading an article that can mae people think.
Also, many thanks for allowing for me too
comment!17Mardi 4 Avril à 13:17Heey there just wanted too give you a qick heads up and let
you know a few of the pictures aren't loading correctly.
I'm not sure why but I think iits a linking
issue. I've tried it in two differet internet browsers annd both show the same
outcome.18Mercredi 12 Avril à 07:15Thanks for another informative website. Where else may I get
that type of information written in such an ideal manner?
I have a undertaking that I'm simply now operating on, and I've been at the look out
for such information.19Lundi 19 Juin à 07:12It's perfect time to make a few plans for the longer term and it's time to be happy.
I've learn this post and if I may just I wish to recommend
you some attention-grabbing issues or advice. Perhaps you can write
next articles relating to this article. I want to read even more issues approximately it!20Mercredi 5 Juillet à 16:23It's remarkable to pay a quick visit this web site and reading the views of all colleagues regarding this
piece of writing, while I am also eager of getting familiarity.21Mercredi 9 Août à 12:01What's up, I read your blogs like every week. Your writing
style is witty, keep doing what you're doing!
Suivre le flux RSS des commentaires
Ajouter un commentaire
for a long time and yours is the best I've came upon so far.
However, what in regards to the bottom line? Are you sure concerning the
source?

Set-Cookie: SERVID=F6; path=/

Via: 1.1 varnish-v4

Access-Control-Allow-Methods: GET

Accept-Ranges: bytes


text: Liên kết website Cập nhật lúc : 16:04 07/08/2013 Giáo dục kỹ năng sống AIDS và cộng đồng Vệ sinh an toàn thực phẩm Cục phòng chống HIV/AIDS Thông tin giáo dục bảo vệ môi trường Phòng chống ma túy Bảo vệ môi trường Việt Nam Các tin khác Báo điện tử Các cuộc thi cho học sinh

markdown:
### Liên kết website
**Giáo dục kỹ năng sống**
|
|[Vệ sinh an toàn thực phẩm](http://vfa.gov.vn/) [Cục phòng chống HIV/AIDS](http://vfa.gov.vn/) [Thông tin giáo dục bảo vệ môi trường](http://www.epe.edu.vn/index.php?choice=news) [Phòng chống ma túy](http://phòngchốngmatuý.vn/) [Bảo vệ môi trường Việt Nam](http://www.vepf.vn/)
Các tin khác
Ngày 14 tháng 12 năm 2017
**Giáo dục kỹ năng sống**
|
|

Server: Apache/2.2.34 (Unix) mod_ssl/2.2.34 OpenSSL/1.0.1e-fips PHP/5.5.38

Content-Type: text/html