본문 바로가기

[MFC]멀티쓰레드 Multi Thread 출처 : Visual C++ 6 완벽가이드 - 김용성 쓰레드 생성방법 1. Worker thread 2. User interface thread 1. Worker thread 이는 단일 작업을 수행하기 위해서 사용. 단일 함수로 구성됨. int nNumber = 100; CWinThread *pThread = ::AfxBeginThread(ThreadFunc, &nNumber); ThreadFunc은 쓰레드가 작업할 함수이다. nNumber가 pParam으로 넘겨지는데 주의할 것은 넘어온 형이 LPVOID이기 때문에 원래 형으로 변환시켜야함. UINT ThreadFunc(LPVOID pParam) { UINT nIteration = (UINT) pParam; for(UINT i=0; iShowWindow.. 더보기
[MFC]디렉토리(폴더)내에서 파일이름들만 얻기 // 해당 경로 내에서 모은 파일명을 가져오는 예제 CFileFind finder; BOOL bWorking = finder.FindFile("*.*"); while (bWorking) { bWorking = finder.FindNextFile(); cout 더보기
[MFC]Resizing Dialog 출처 : http://www.codeproject.com/dialog/easysize.asp 첨부파일: 다이얼로그 형태의 MFC에서 매우 유용하게 사용할 수 있는 코드이다. 사용법: 1. stdafx.h파일에 #include EasySize.h 을 추가. 2. 다이얼로그 클래스 정의한 부분에 DECLARE_EASYSIZE 넣음 class CEasySizeDemoDlg : public CDialog { DECLARE_EASYSIZE ... 3. 해당 다이얼로그 클래스의 OnInitDialog()에 INIT_EASYSIZE;을 넣음 BOOL CEasySizeDemoDlg::OnInitDialog() { CDialog::OnInitDialog(); ... INIT_EASYSIZE; return TRUE; //.. 더보기
[MFC]CInternetConnection 등 사용 코드들 가장 좋은 예제는 MSDN에 있는 Tear예제이다. ///////////////////////////////////////// int get_htmlpage(const char* filename, int nVerb,char* server,char* page,char* SessionID,char* post_payload){ CInternetSession* pInetSession; CHttpConnection* pHttpConnection; CHttpFile* pFile = NULL; DWORD dwServiceType; CString sHttpSite; CString sServerName; CString sObject; CString sHttpURL; INTERNET_PORT nPort; int n; ch.. 더보기
[MFC] 컨트롤 배경 투명하게 만들기 [MFC] 컨트롤 배경 투명하게 만들기 (Ospace 07.07.02) 박재성 *간단하게 설명하기 위해서 이미지와 소스는 생략했다. 배경에 일정한 색 혹은 이미지를 깔고 그 위에 컨트롤을 배치할 경우가 있다. 그러면 글자 배경색이나 Seek bar의 배경이 그대로 남아 있는 경우가 있다. 이럴 경우 컨트롤의 배경색을 투명하게 만들어보자. MFC에서는 OnCtlColor이라는 핸들러를 제공한다. OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 첫번째 인자 : pDC 이부부은 잘 알 것이다. CDC로 Device Contect이고, 이는 각 컨트롤의 색을 변경할 수 있게 한다. 두번째 인자: pWnd 이는 각 컨트롤의 인스탄스를 넘겨받는다. 이를 통해서 각 컨트롤을 식.. 더보기
[MFC] 여기저기 긁어모은 코드들 //////////////////////////////////////////////////////////// void CCharSheetView::OnInitialUpdate() { CFormView::OnInitialUpdate(); CWnd* pwndPropSheetHolder = GetDlgItem(IDC_PLACEHOLDER); // 프로퍼티 시트의 홀더로 픽쳐 컨트롤 사용 m_pCharPropertySheet = new CCharPropertySheet(_T("-_-v"), pwndPropSheetHolder); if(!m_pCharPropertySheet->Create(pwndPropSheetHolder, WS_CHILD | WS_VISIBLE, 0)) { delete m_pCharProper.. 더보기
[MFC] MainFrame/Document/VIew 프레임워크간 상호참조 1. 전역함수 CWinApp* AfxGetApp(); CWinApp 파생 클래스 참조에 사용 CWnd* AfxGetMainWnd(); 메임 프레임 클래스의 인스턴스 포인터 반환 2. 프레임 윈도우 -> 도큐먼트/뷰 CFrameWnd::GetActiveDocument() 도큐먼트 클래스 참조 CFrameWnd::GetActiveView() 현 프레임 윈도우와 연결된 뷰 참조 3. 뷰 -> 프레임윈도우/도큐먼트 CFrameWnd* GetParentFrame() const; 프레임 윈도우 참조 CView::GetDocument() 뷰에 연결된 도큐먼트 참조 static_cast(GetParentFrame())->SetSize(CPoint(480, 350)); 메임프레임의 크기 조정 예 4. 도큐먼트 -> 뷰/.. 더보기
[MFC] EasySize.h 매크로 풀어논 것 #ifndef __EASYSIZE_H #define __EASYSIZE_H #define ES_BORDER 0xffffffff #define ES_KEEPSIZE 0xfffffffe #define ES_HCENTER 0x00000001 #define ES_VCENTER 0x00000002 #define DECLARE_EASYSIZE \ //class내에 멤버함수를 추가하는 기능 void __ES__RepositionControls(BOOL bInit);\ void __ES__CalcBottomRight(CWnd *pThis, BOOL bBottom, int &bottomright, int &topleft, UINT id, UINT br, int es_br, CRect &rect, int clientbot.. 더보기

반응형