Friday 15 August 2014

c++ - Disabling dialog OK button MFC -


मैं एमएफसी संवाद ओके बटन कैसे अक्षम करूं?
यह कोड:
CWnd * fieldOK = pDlg - & gt; GetDlgItem (IDOK);
फ़ील्ड ओके-> सक्षमवंडो (FALSE); अपवाद का कारण बनता है " एक्सेस उल्लंघन पढ़ने के स्थान ... " लाइन ASSERT (:: IsWindow (m_hWnd) || (m_pCtrlSite! = NULL)); फ़ंक्शन का CWnd :: EnableWindow (BOOL bEnable) में winnocc.cpp से mfc90d.dll
इस समय ध्यान दूसरे नियंत्रण पर है।
क्या गलत हो सकता है?

[help]

[संपादित करें]

  bool CSCalcNormCell :: OnSelectionChanged (CWnd * pDlg, int प्रकार, int पृष्ठ, UINT ctrl_id) {DDX_DataBox (pDX.get (), IDC_WORKSHOP_COMBO, ws_code); यदि (! CInfactoryPriceAdapter :: CanEditPricesForWorkshop (ws_code)) {CWnd * fieldOK = pDlg- & gt; GetDlgItem (IDOK); fieldOK- & gt; EnableWindow (FALSE); } अन्य {सीडब्ल्यूएनडी * फील्ड ओके = पीडीएलजी- & gt; GetDlgItem (आईडीओके); fieldOK- & gt; EnableWindow (TRUE); }}    

मुझे यकीन नहीं है कि ऐसा क्यों नहीं कर पाएगा । अगर मैं एक नियमित सीडीआलाओग लेता हूं और इस तरह एक init करता हूं:

  BOOL CMyDialog :: OnInitDialog () {CDialog :: OnInitDialog (); सीडब्ल्यूएनडी * ओकबटन = गेट डेलगइटम (आईडीओके); If (okbtn) {okbtn- & gt; सक्रियवंडो (FALSE); } वापसी TRUE; }   

यह बटन ठीक से अक्षम करता है। शायद कुछ और गलत है?

No comments:

Post a Comment