3
정적 텍스트 및 편집 컨트롤이있는 대화 상자가 있습니다. 대화 상자 컨트롤 클래스에는 편집 상자에 초기 값을 설정하는 컨트롤 변수와 사용자가 변경할 때 편집 상자의 값을 가질 int가 있습니다. 둘 다 개인 변수이지만 정수 변수에 값을 가져 오지 못합니다. 아래에서이 코드를 감지 할 수있는 방법이 있습니까?MFC EditControl의 값이 전용 멤버에 들어오지 않습니다.
class CYrdAuthorityPage : public CPropertyPage
{
DECLARE_DYNAMIC(CYrdAuthorityPage)
public:
CYrdAuthorityPage();
virtual ~CYrdAuthorityPage();
// Dialog Data
enum { IDD = IDD_YRD_AUTHORITY_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
private:
CEdit m_authctrl;
int m_authval;
public:
afx_msg void OnEnChangeAuthEdit();
};
IMPLEMENT_DYNAMIC(CYrdAuthorityPage, CPropertyPage)
CYrdAuthorityPage::CYrdAuthorityPage()
: CPropertyPage(CYrdAuthorityPage::IDD)
{
}
CYrdAuthorityPage::~CYrdAuthorityPage()
{
}
void CYrdAuthorityPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_AUTH_EDIT, m_authctrl);
DDX_Text(pDX,IDC_AUTH_EDIT,m_authval);
}
/*BEGIN_MESSAGE_MAP(CYrdAuthorityPage, CPropertyPage)
ON_EN_CHANGE(IDC_AUTH_EDIT, &CYrdAuthorityPage::OnEnChangeAuthEdit)
END_MESSAGE_MAP()*/
여기 m_authval에는 값이 없습니다. 나는 그것이 사적이기 때문에있을 수 있다고 생각하지만 그것을 공개하는 것은 또한 같은 결과를 준다. 편집 상자를 설정하여 텍스트를 중앙에서 정렬합니다.
감사합니다.
[Dialog Data Exchange] (http://msdn.microsoft.com/en-us/library/xwz5tb1x.aspx) –
초기 값은 무엇입니까? 초기 값을 제공하지 않습니다. – rrirower
나는 코드 조각이 600 줄 이상 길어 지므로 코드 스 니펫을 제거했다. 그러나 문제는 DDX 매크로를 사용하여 가치를 얻지 못하는 것과 같습니다. – user3494614