2010-03-22 3 views
0

또는 당신의 ::의 OnInitDialog() 비주얼 스튜디오 2008 C++ 할 수있는 일과 할 수없는 일당신의 ::의 OnInitDialog 수행 할 수있는() 비주얼 스튜디오 2008 C++

내가에서 대화 상자에서 일부 텍스트를 작성하려합니다 대화 상자 시작. 같은 코드를 PUSH-BUTTON OnBnClicked에 넣으면 작동합니다. OnInit에 넣으면 화면에 텍스트가 표시되지 않습니다. 나는 OnInit에서 내 대화 상자가 완전히 작성되지 않았다고 가정하기 때문에 쓸 수 없다.

CRect drawRect;  
drawRect.left = 00;  // Shifts text to right 
drawRect.right = 300; 
drawRect.top = 00;  // How Far Down 
drawRect.bottom = 300; 

// Clear out any previous name 
CString strBlank = "Book Name"; 
SSTextOut(this->GetDC(), strBlank, &drawRect, DT_LEFT); 

내가 쓰고있는이 기능은 당신이 OnInitDialog()의 기능 SSTextOut()을 사용할 수 없습니다 http://www.codeproject.com/KB/GDI/SSTextOut.aspx

답변

1

에 설명되어 있습니다. OnInitDialog()이라고하며 대화 상자가 표시되기 때문에 대화 상자가 아직 그려지지 않았기 때문에 유효한 CDC을 얻을 수 없습니다.

외관상으로는 SSTextOut()OnPaint() 무시에서 호출해야합니다.

+0

글꼴 크기를 제어 할 수있는 OnInit에 텍스트를 추가하는 데 사용할 수있는 다른 기능이 있습니까? 답장을 보내 주셔서 감사 드리며, 저는이 시간 동안 많은 시간을 땀을 흘렸습니다! – user299391

+0

@flirishman OnInitDialog()에서 대부분의 컨트롤의 글꼴 크기를 설정할 수 있지만 리소스 편집기를 통해 수행하는 것이 좋습니다. OnInitDialog()에서는 SSTextOut()이 시도하는 것을 그릴 수 없습니다. – adam

관련 문제