MDI 또는 SDI 구조의 MFC 프로젝트를 만들 때, View class 설정시에 CScrollView를 기본 상속하도록 만든다. void CxxView::OnInitialUpdate() 함수에서 다음과 같이 한다. >void CMyViewerView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); //현재 View와 연결된 doc를 가져온다. CMyViewerDoc* pDoc = GetDocument(); CSize sizeTotal; // TODO: 이 뷰의 전체 크기를 계산합니다. //도큐먼트에 저장된 영상 사이즈를 가져온다. sizeTotal.cx = pDoc->m_nWidth; sizeTotal.cy = pDoc->m_nHeight; //설정한다...
혼자 공부한것이라 틀릴수도 있어요. ^^;; threadIdx 는 블럭 내에서의 스레드의 위치를 나타내고 blockIdx 는 그리드 내에서 블럭의 위치를 나타낸다. 2*2의 블럭내에 2*2의 스레드(총 4개 )가 있다면, threadIdx는 블럭내의 인덱스 이므로 아래와 같다. (블럭(0,0) Thead(00,10,01,11) 총 4개를 가진다는 예제의 그림임) 서로 다른 블럭내의 스레드는 모두 동일한 인덱스를 가진다. 따라서, 작업하는 실제 스레드 위치를 알기 위해서는 다음과 같이 계산해 줘야 한다. int work_x = blockIdx.x * blockDim.x + threadIdx.x; int work_y = blockIdx.y * blockDim.y + threadIdx.y; 여기서 blockD..
SDI나 MDI 구조의 경우 문서 열기를 재정의 해서 사용해야 할 때가 있다. 이럴때는... 1. XXXXAPP.cpp 파일을 열어서 코드의 가장 위에 있는 메시지를 아래와 같이 다시 정의한다. BEGIN_MESSAGE_MAP(CCudaTestApp, CWinAppEx) ON_COMMAND(ID_APP_ABOUT, &CCudaTestApp::OnAppAbout) // 표준 파일을 기초로 하는 문서 명령입니다. ON_COMMAND(ID_FILE_NEW, &CWinAppEx::OnFileNew) //기존의 OnFileOpen 임. //ON_COMMAND(ID_FILE_OPEN, &CWinAppEx::OnFileOpen) //OnOpenDocument 함수를 호출할 때, 자신이 만든 함수를 호출하도록 //ID..
사실...제가 직접 만든것은 아니구요 ㅠ_ㅠ 인터넷에서 떠도는 코드를 좀 가져왔습니다. 위에 있는 코드를 받으시구.. 아래와 같이 워크스페이스에서 Source Files 에 BrowseFolderDialog.cpp 추가, Header Files 에 BrowseFolderDialog.h 파일 추가하시면 됩니다. 사용 방법은.. 아래와 같이 사용하시면 됩니다. BrowseFolderDialog dlg; //선언 CString FolderPath = ""; // 폴더 경로를 저장할 변수 선언 if(dlg.DoModal() == IDOK){ dlg.GetSelectStr(FolderPath); }