본문 바로가기

공부/컴퓨터

[MFC] 오래 걸리는 작업의 UI 유지 ( 메세지 펌핑 )

반응형

-------

사용예1

-------

while(1)

{

         netClient.Recv(buffer, 4096);

         file.Write(buffer, 4096);

         PUMP_MSG(m_hWnd);
}



-------

사용예2

-------

while(1)

{

         zip.Achive(buffer, 4096);

         PUMP_MSG(m_hWnd);
}



저렇게 하면은 파일을 받으실때나 어떤 무한 루프를 돌면서 UI가 맛탱이 가지 않게 돌릴수도 있답니다.

중간에 메시지 펌핑을 해주니깐요...



여담이지만, 알집도 저렇게 한거 같거든요 압축 풀때.... 왜냐믄은 저렇게 하면은 위에 빠를 잡으면 멈춰 버립니다^^;;; ㅋㅋㅋ

뭐 단점이 될려나? 파일 다운로드시엔 뭐 거의 단점이라고 볼수는 없던걸요^^



느므느므 간단해서 콧방귀를 뀌실라나....쯥-_- 어디까지나 tip입니다.....전 아주 유용하게 사용하지요~






------

매크로

------



#define PUMP_MSG(hWnd)          \

do {                                           \

    static MSG msg;             \

    if (PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE)==TRUE) {       \

        TranslateMessage(&msg);                                 \

        DispatchMessage(&msg);                                  \

    }                       \

} while(0)  




출처 : http://220.85.19.108:8080/mypage/bbs/view.php?id=prog_win_api&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=33
반응형