VMWare 이미지에 Windows XP Professional SP3을 설치하고 Visual Studio 2005를 설치했습니다. 나는/clr을 지원하는 새로운 대화 상자 기반 C++ MFC 프로젝트를 만들었습니다. RichEdit 2.0 컨트롤을 자동 생성 대화 상자에 넣었습니다. 텍스트 파일을 읽고 서식을 지정하지 않고 단추 클릭으로이 RichEdit 2.0 컨트롤에 내용을 넣으려고합니다. RichEdit 2.0에 pCRichEditCtrl이라는 변수를 추가했는데 작동하지 않는 코드입니다.VS 2005 CRichEditCtrl 인스턴스의 C++ 편집 내용
를 CWinApp 상속 :
BOOL CTextFormatterApp::InitInstance()
{
...
AfxInitRichEdit2();
CWinApp::InitInstance();
...
}
를 CDialog 상속 :
void CTextFormatterDlg::OnBnClickedButton1()
{
StreamReader^ objReader = gcnew StreamReader("c:\\text.txt");
String ^sLine = "";
sLine = objReader->ReadLine();
while (sLine != nullptr)
{
pCRichEditCtrl.SetSel(pCRichEditCtrl.GetTextLength(), -1);
pCRichEditCtrl.ReplaceSel(CString(sLine));
sLine = objReader->ReadLine();
}
objReader->Close();
}
나는 그것이 계산 여부를 알 수없는하지만 연결에 다음과 같은 경고를 얻을 :
TextFormatterDlg.obj을 : 경고 LNK4248 : 'AFX_CMDHANDLERINFO'에 대한 미해결 typeref 토큰 (01000016); 이미지가 실행되지 않을 수 있습니다.
TextFormatter.obj : 경고 LNK4248 : 'AFX_CMDHANDLERINFO'에 대한 확인되지 않은 typeref 토큰 (01000012); 이미지가 실행되지 않을 수 있습니다.
TextFormatterDlg.obj : 경고 LNK4248 : 'IAccessibleProxy'에 대한 확인되지 않은 typeref 토큰 (01000015); 이미지가 실행되지 않을 수도 있습니다.
저는 최신 프레임 워크에만 익숙하고 어느 쪽도 Windows를 모르기 때문에 내가 무엇을하고 있는지 잘 모르겠습니다.
입력 파일이 있는데 응용 프로그램을 디버깅해도 읽을 수 있지만 편집 상자에 변경 사항이 표시되지 않습니다. 전화하려고 시도했습니다 pCRichEditCtrl.UpdateData (true);하지만 아무 것도 변경되지 않았습니다.
상자 컨트롤러 (pCRichEditCtrl)를 가져 오기위한 변수를 추가하는 것으로 충분합니까? 포인터가 적절한 제어 항목을 가리 키지 않는 것 같습니다.
무엇이 누락 되었습니까?
스트레이트 MFC를 사용하여 컨트롤을로드하는 방법을 알려 주셨습니다. 어떻게/pCRichEditCtrl을 선언합니까? 어떻게 컨트롤에 연결합니까? –
GUI를 통해 추가 : RichEdit 컨트롤에서 오른쪽 클릭 -> 변수 추가 ... 추가 정보 : 다음 줄을 추가하면 RichEdit이 텍스트를 표시하지만 두 번째 줄부터 만 표시됩니다. ** UpdateData (TRUE) ** 이상하게 보입니다. – bdevay
'UpdateData()'가 없으면 아래의 간단한 테스트 프로젝트 인'pCRichEditCtrl'에 대한 나의 대답을 편집했습니다. 이것은 "value"타입의 변수를 가지고있을 때만 필요합니다. –