CWaitCursor ();
หมายเหตุ
เมื่อต้องการแสดงเคอร์เซอร์รอ ก็ประกาศวัตถุCWaitCursorก่อนรหัสที่ทำการดำเนินการที่ยาวเกินไป การกำหนด ทำให้เคอร์เซอร์รอจะแสดงขึ้นโดยอัตโนมัติ?
เมื่อวัตถุไปตกขอบเขต (ในตอนท้ายของบล็อกในซึ่งวัตถุCWaitCursorได้ประกาศ), destructor ของตั้งค่าเคอร์เซอร์เคอร์เซอร์ก่อนหน้า กล่าวอีกนัยหนึ่ง วัตถุทำจำเป็นล้างโดยอัตโนมัติ?
คุณสามารถใช้ประโยชน์จากข้อเท็จจริงเรียกว่า destructor ที่ว่าในตอนท้ายของบล็อก (ซึ่งอาจจะก่อนการสิ้นสุดของฟังก์ชัน) เพื่อทำให้เคอร์เซอร์รอใช้งานในส่วนเฉพาะของฟังก์ชันของคุณ เทคนิคนี้จะแสดงตัวอย่างที่สองที่ด้านล่าง?
หมายเหตุnbsp เนื่องจากของวิธีของตน constructors และ destructors ทำงาน วัตถุCWaitCursorได้เสมอประกาศเป็นตัวแปรท้องถิ่น และพวกเขาจะไม่เคยประกาศเป็นตัวแปรส่วนกลาง ไม่ถูกปันพวกเขาส่วนกับใหม่(&N)?
ตัวอย่าง
/ / ตัวอย่างต่อไปนี้แสดงให้เห็นถึงกรณีทั่วไป
/ / แสดงเคอร์เซอร์รอระหว่างบางยาวเกินไป
/ / ทำการประมวลผล
โมฆะ LengthyFunction ()
{
nbsp / / บางทีคุณแสดงกล่องโต้ตอบก่อนที่จะแสดงใน
/ / รอเคอร์เซอร์
รอ CWaitCursor / / แสดงเคอร์เซอร์ที่รอคอย
/ / ทำการประมวลผลบางยาวเกินไป
} / / destructor เคอร์เซอร์รอที่เอาออกโดยอัตโนมัติ
/ / ตัวอย่างนี้แสดงการใช้วัตถุ CWaitCursor ภายในบล็อก
/ / เพื่อรอเคอร์เซอร์จะแสดงเฉพาะในขณะที่โปรแกรมอยู่
/ / ดำเนินยาวเกินไป
โมฆะ ConditionalFunction ()
{
ถ้า (SomeCondition)
{
รอ CWaitCursor / / แสดงเคอร์เซอร์ในบล็อกนี้เท่านั้นที่รอคอย
/ / ทำการประมวลผลบางยาวเกินไป
} / / ณจุดนี้ destructor ที่เอาเคอร์เซอร์รอ
อื่น
{
/ / ไม่รอเคอร์เซอร์ - การประมวลผลแบบเร็วเท่านั้น
}
}(&N)
ภาพรวม CWaitCursor |nbsp แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCWaitCursor::Restore, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursor(&N)