참고해 보시기 바랍니다.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=26516
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=28252
아마도 쓰레드내에서 폼을 건드리시기 때문일겁니다.
저도 이걸 모를때는 한참 애먹었었는데... InsertItem 같은 것을 상관이 없지만요.
결론은 폼을 건드리실때는 Synchronize() 함수를 사용하셔서 메인 쓰레드로 돌려야 된다는겁니다.
그럼, 좋은결과 있으시길 바랍니다.
하늘마루 님이 쓰신 글 :
: 안녕하세요.
: cmsMSDS라는 DLL이 있습니다. 이 DLL에서는 메인 폼에 있는 ListView의 핸들을 얻어와서
: 서브클래싱하여 특정 필드에 체크버튼을 만드는 것을 만들었습니다.
: 그런데, 체크버튼을 안만들고 InsertItem 등을 하면 잘 나옵니다만, 체크버튼을 만들게 시키면, 먹통이 되어
: 버리네요. 체크버튼이 안보이는 것은 당연지사입니다.
:
: 참... cmsMSDS.DLL은 Worker Thread로 동작하도록 만들고, 소켓으로 들어오는 데이터를 계속 감시하면서
: 그 데이터를 처리하는 역할을 합니다.
: 당연히 Thread 루프 내에서 데이터에 따라서 체크버튼을 만들지 안만들지를 결정합니다.
: 체크버튼을 만들기로 결정하면 제가 ListView를 서브클래싱한 놈에게 체크 박스를 만들도록 하지요.
:
: Thread 루프 안에서 체크버튼을 만들도록 시키지 않고, 다른 곳에서 만들도록 하면, 화면에 아주 이쁘게
: 잘 그려집니다.
:
: 도대체 이유가 뭘까요?
|