메뉴 건너뛰기

OBG

Programming

MoA
조회 수 1647 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
ex)
CServerManagerDlg 메인 다이얼로그
 
스레드와 관련없는 함수들은 타 클래스에서
CServerManagerDlg* lpDlg = (CServerManagerDlg*)AfxGetMainWnd();
이렇게 선언해서 가져다 썼다.
하지만,
스레드안에서는 메인다이얼로그 포인터를 얻을수 없다.
이유인 즉
AfxGetMainWnd()
안으로 들어가보면
 
_AFXWIN_INLINE CWnd* AFXAPI AfxGetMainWnd()
{
    CWinThread* pThread = AfxGetThread();
    return pTrhead != NULL ? pThread->GetMainWnd() : NULL;
}

내부에서 AfxGetThread() 함수를 사용하는 것을 볼수가 있다.
이것은 현재 스레드의 GetMainWnd() 함수를 호출한다.
이것은 다른 스레드에서 메인 윈도우의 핸들이 필요할때는 문제가 된다.
즉 다른 스레드에서 다음과 같이 AfxGetMainWnd() 함수를 호출하면 메인 윈도우의 핸들을 얻을수가 없게 된다.
해서
 
스레드에 연결된 모든 맴버 함수내에서는
CServerManagerDlg* lpDlg = (CServerManagerDlg*)AfxGetApp()->GetMainWnd();
이렇게 해주면 된다.

?

  1. Programming 게시판 관련

  2. 모달리스 대화상자

  3. 메트로 스타일 앱개발을 위한 8가지 팁

  4. 메시지 펌프

  5. 멀티-플레이어 게임 서버와 레이턴시 보상 테크닉

  6. 만능 프롬프트

  7. 마이크로소프트가 공개한 무료 AI 코스들

  8. 리스트뷰에 체크박스 추가 예제

  9. 리스트 컨트롤에 체크박스 추가

  10. 리스트 컨트롤 클릭 이벤트

  11. 로그 클래스 및 업데이터

  12. 디자인 패턴 정리

  13. 동적 프로그래밍

  14. 다이얼로그 기반에서 메뉴 내용이 갱신 안되는 문제 해결

  15. 다이얼로그 resize 시 child control의 그래픽 깨짐 해결

  16. 다른 스레드에서 메인다이얼로그 포인터 받아오기 AfxGetMainWnd()

  17. 다국어를 위한 StringTable, LoadString

  18. 내 마음대로 선정한 머신러닝/딥러닝 학습 추천 서적

  19. 구글 검색 알고리즘의 원리

  20. 고양이 움직이기

  21. 고양이 밖으로 못나가게 하기

Board Pagination Prev 1 ... 2 3 4 5 6 7 8 9 10 ... 15 Next
/ 15
위로