2014-12-16 5 views
2

Win-32 응용 프로그램 내에 편집 상자를 만들려고하는데 문제가 있습니다.편집 상자 깜박임

m_hWnd = CreateWindow(m_wWindowName.c_str(), m_wWindowName.c_str(), 
     WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, width, height, 0, 0, m_hInstance, this); 
:

내가 이렇게 내 초기 윈도우를 생성 그것은 단지 내 마우스 이동을 클릭 함과 동시에 드래그하는 상황에서 표시됩니다, 그것은과 가시성에서 점멸 줘야

그리고 나서 나중에 기존 창 내부 새로운 편집 상자를 만들려고 :

CreateWindowEx(WS_EX_CLIENTEDGE, 
     TEXT("Edit"), TEXT(""), 
     WS_CHILD | WS_VISIBLE, 
     10, 80, 
     200, 20, 
     m_hWnd, (HMENU)1, NULL, NULL); 

편집 : 나는 다음과 같은

,369을 수행하여, 자신의 클래스 내 초기 창을 만드는 오전
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, 
        PSTR cmdLine, int showCmd) 
{ 
    CApplication Application; 
    Application.Initialise(hInstance, MainWndProc, L"GUI Tool"); 

    return Application.Run(); 
} 

initialise 함수는 창을 생성 한 후 바로 (초기화 함수에서) 편집 상자를 만들려고합니다.

누군가 이런 일이 발생하는 이유에 대해 도움을 줄 수 있습니까?

감사

+1

이 문제를 재현하는 최소한의 완전한 예제를 제공 할 수 있습니까? – andlabs

+0

이렇게하면 코드의 잘못된 위치에 창을 만드는 것으로 생각됩니다. –

+0

게시물을 편집하여 코드가 어떻게 연계되어 있는지 알 수 있습니다. – Matt

답변

2

당신이 당신의 WM_PAINT 처리기에서 컨트롤의 맨 위에 칠하고 (또는이 DefWindowProc에 의해 수행되고있다)처럼 소리.

가장 쉬운 방법은 부모 창에 WS_CLIPCHILDREN 스타일을 설정하는 것입니다.이 방법은 페인팅 할 때 자동으로 자식 창을 잘라냅니다.