BOOL IsConvertingVBX ( );
ส่งกลับค่า
ไม่ใช่ศูนย์ถ้าตัวควบคุมกำลังถูกแปลง 0 อื่น?
หมายเหตุ
เมื่อฟอร์มที่ใช้ VBX ในการแปลงตัวควบคุมที่ใช้ตัวควบคุม OLE รหัสพิเศษโหลดตัวควบคุม OLE อาจจะต้อง ตัวอย่างเช่น ถ้าคุณกำลังโหลดอินสแตนซ์ของตัวควบคุม OLE คุณอาจมีการเรียกไปยังPX_FontในDoPropExchangeของคุณ:
PX_Font (pPx "แบบอักษร" m_MyFont, pDefaultFont)
อย่างไรก็ตาม VBX ควบคุมไม่มีวัตถุที่เป็นแบบอักษร แต่ละคุณสมบัติแบบอักษรถูกบันทึกแต่ละรายการ ในกรณีนี้ คุณต้องใช้IsConvertingVBXเพื่อแยกความแตกต่างระหว่างสองกรณีเหล่านี้:
ถ้า (IsConvertingVBX()==FALSE)
nbsp PX_Font (pPX "แบบอักษร" m_MyFont, pDefaultFont);
อื่น
{
PX_String (pPX, "FontName", tempString, DefaultName);
m_MyFont - > put_Name(tempString)
PX_Bool (pPX, "FontUnderline", tempBool ค่าเริ่มต้น);
m_MyFont - > put_Underline(tempBool)
...
}
กรณีอื่นจะถ้าควบคุม VBX ของคุณบันทึกข้อมูล binary ที่มี (ในตัวจัดการข้อความของVBM_SAVEPROPERTY ), และของคอนโทรล OLE ของข้อมูลไบนารีที่จะบันทึกในรูปแบบอื่น ถ้าคุณต้องการให้ตัวควบคุม OLE ของคุณจะย้อนกลับเข้ากับตัวควบคุม VBX คุณสามารถอ่านทั้งเก่า และใหม่รูปแบบโดยใช้ฟังก์ชันIsConvertingVBXโดยแยกว่าตัวควบคุม VBX หรือตัวควบคุม OLE ถูกโหลด?
ในฟังก์ชันDoPropExchangeของตัวควบคุมของคุณ คุณสามารถตรวจสอบเงื่อนไขนี้ และถ้าเป็นจริง เรียกใช้โค้ดโหลดเฉพาะแปลงนี้ (เช่นในตัวอย่างก่อนหน้านี้) ถ้าไม่มีการแปลงตัวควบคุม คุณสามารถเรียกใช้รหัสโหลดปกติ ความสามารถในการทำงานนี้จะใช้กับตัวควบคุมที่ถูกแปลงจาก VBX counterparts เฉพาะ?
ภาพรวม COleControl |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCOleControl::DoPropExchange(&N)