2014년 10월 27일 월요일

OnInitDialog(혹은 뷰 초기화 시)에서 CEdit의 SetFocus가 동작하지 않을 때.

간혹가다 창이 뜰 때, 상황에 맞게 자신이 원하는 컨트롤에 포커스를 주고 싶은 경우가 있는데...(보통 ctrl+D해서 리소스에서 탭오더를 조정한다.)

초기함수에서 SetFocus가 제대로 동작하지 않는 문제가 있다.

OnInitDialog()에서는 리소스가 초기화 되기 때문에, 아무리 GetDlgItem( IDC_OK )->SetFocus(); 해도 동작하지 않는다.

이럴 땐 편법을 써야된다.

타이머를 이용해서;;;

타이머를 설정해서 부르고(SetTimer( 0, 200, NULL )), 뭐 이런식으로...

그 다음 포커스를 옮겨보자. 그럼 된다.


부작용....피시상태가 엄청 안좋은 피시에서 하면.....문제가 되겠지? 타이머가 언제 불릴까나....ㅋ

댓글 없음: