로그인

검색

MoA
조회 수 15668 추천 수 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. [농장게임 만들기] 5. 플레이어를 추가하자

  3. [농장게임 만들기] 4. 펜스를 그리자

  4. [농장게임 만들기] 3. 배경을 그리자

  5. [농장게임 만들기] 2. Nubcake Farms 클래스 분석

  6. [농장게임 만들기] 1. Nubcake Farms 게임 소개

  7. [게임 만들기] 강좌 진행 예정

  8. 2048게임 높은 점수 얻기 위한 알고리즘

  9. UI Guidelines

  10. 자바스크립트 물리엔진 ㄷㄷ

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

  12. 파이썬에서 C모듈 사용하기

  13. CSpreadSheet

  14. 워게임 사이트 정리

  15. RAND_MAX

  16. OpenCV 이용한 템플릿 매칭

  17. Quake 3 source code and review

  18. 화면 캡쳐 소스

  19. __FILE__ __LINE__ __FUNCTION__ 등 매크로

  20. 유용한 라이브러리 소개

  21. Embedding Python in C/C++

Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 18 Next
/ 18