2012-07-27 1 views
0

에 달려 WIN32. 원자 대화 상자에는 사용자 지정 콤보 상자 컨트롤이 있는데이 컨트롤의 드롭 다운 목록을 클릭하고 5 초 (Windows7에서)를 기다리는 동안 EditMolecule 창이 응답하지 않게됩니다. 동일한 응용 프로그램이 Windows XP에서 잘 작동합니다. 누구든지이 문제에 대한 해결책을 제안 할 수 있습니까? 미리 감사드립니다. 대기는 C++ 응용 프로그램은 세 개의 탭 controls.First 탭 컨트롤이 <strong>원자 대화</strong>를 엽니가 나는 <strong>EditMolecule</strong> 대화에 있다는 점에서 Win32 응용 프로그램이 Windows7의

+0

사용자 지정 콤보 상자를 말하고 있습니다. GetDC()로 뭔가를하고 있습니까? 그렇다면 제대로 풀어주고 있습니까? WM_PAINT도 취급하고 있습니까? – Shubhansh

+0

Windows XP에서 실제로 잘 작동합니까? Windows XP는 응용 프로그램이 응답하지 않을 때 번거 로움을 덜어줍니다. 드롭 다운이 열려있는 동안 다른 응용 프로그램을 이동할 수 있으면 다시 그려지지 않을 것입니다. 위의 설명에 따르면 WM_PAINT와 같은 Windows 메시지를 처리하고 있는지 확인하십시오. Windows 7에서 앱이 여전히 응답하는지 확인할 수 있습니다. – Dogmang

+0

빠른 답변을 주셔서 감사합니다. GetDC()를 사용하고 있지 않습니다. 사용자가 드롭 다운 목록을 열면 5 초 후에 창이 멈추고 다시 그려집니다. WM_PAINT 메시지를 처리하는 방법을 잘 모르겠습니다. 드롭 다운이 열려있는 동안 다른 응용 프로그램으로 이동 한 후 hanging.please 제안하지 않습니다. – user1557480

답변

2

순수 WIN32에서 대화 상자를 열면 기본 메시지 루프가 실행되고 있지 않습니다. 대화 상자에 대한 새로운 메시지 루프를 추가해야합니다.

+0

대화 상자 (원자 대화 상자 메시지 루프)에 대한 새로운 메시지 루프가 있습니다. 그러나 드롭 다운이 열려있는 동안 새 메시지 루프 내부에 메시지가 표시되지 않습니다. 부모 창 proc (EditMolecule wind proc)에 기본 메시지가 표시됩니다. 확실하지 않은 이유는 메시지가 새 메시지 루프에 전달되지 않는 이유입니다. – user1557480

관련 문제