본문 바로가기
반응형

MFC90

[개발/MFC] 문자열 변환 BSTR to CString, CString to BSTR, BSTR to char* [개발/MFC] 문자열 변환 BSTR to CString, CString to BSTR, BSTR to char* VC++ , MFC에서 문자열 변환 정말 까다롭다. 더군다나 유니코드 모드는 조금더 까다로운것 같다. 아래 예제가 도움이 될 것이라 생각된다. // Convert BSTR to CString BSTR bsName; CString csName; USES_CONVERSION; csName = OLE2A(bsName); // Convert CString to BSTR BSTR bsName; CString csName; bsName = csName.SysAllocString(); // create an OLE string BSTR bstr = ::SysAllocString(L"Golf is fun!.. 2011. 5. 12.
[개발/MFC] MFC 팁 54개 1. DC얻기 CClientDC dc(this); 2. Client 영역 구하기 GetClientRect(&rect); WM_SIZE 메시지발생후 cx,cy 사용 3. 문자열 사각형안에 그리기 pDC->DrawText(문자열,사각형,Style); Style : DT_BOTTOM - 문자열을 사각형 맨아래줄에배열 반드시DT_SINGLELINE과 함께사용 DT_CENTER - 문자열을 가로중앙에 배치 DT_VCENTER - 문자열을 세로중앙에 배치 DT_LEFT,RIGHT - 문자열을 좌,우로 배치 DT_SINGLELINE - 문자열을 한줄로만 쓴다 4. Brush 사용법 CBrush brushname(RGB(red,green,blue)); //브러쉬 생성 //이전Brush 저장, 새로운 Brush 선택 C.. 2011. 5. 10.
[개발/MFC] 날짜계산, 시간계산 해보자 쌈꼬쪼려 소백촌닭 MFC에서 현재 시간을 기준으로 시간계산을 하는 방법을 알아보자. 아래의 예제만 알면... 더하고 빼고 차이를 계산하는 건 문제가 아니다. 먼저 현재 날짜와 시간을 제대로 얻어야 한다. 처음 사용한다면 변수에 날짜와 시간을 표시하는 과정을 갖고 확인하는 습관을 들이자. 그럼 아래에 예제가 있다. 오늘로부터 3일 뒤의 날짜를 알고 싶다. CString s; CTime ctTime = CTime::GetCurrentTime(); s.Format("%04d.%02d.%02d", ctTime.GetYear(), ctTime.GetMonth(), ctTime.GetDay()); CTimeSpan tsAddTime(3, 0, 0, 0); ctTime += tsAddTime; // 날짜 더하기 s... 2011. 4. 29.
[개발/MFC] Thread, Process ID & Handle 윈도우즈용 응용프로그램, ActiveX, DLL, Windows Service 등을 만들기 위해서 알아두어야 할 기본적인 지식들 출처 : http://radrome.springnote.com/pages/2213794 윈도우, 프로세스, 모듈 - 핸들, ID, 파일이름 파일이름 만으로 전체 경로 얻기 GetFullPathName( sFileName, _MAX_PATH, sFullFull, 0); -> 문제 : 현재 경로에 파일름만 붙인다. GetFullPath()(만듬) : 파일일 현재 실행된 파일의 경로에 있는 검사해서 붙인다. * 윈도우 윈도 Instance : (SDK) GetWindowLong(hWndCur, GWL_HINSTANCE), (MFC)HINSTANCE AfxGetInstanceHandl.. 2011. 4. 19.
[개발/MFC] 프로세스 강제 종료 두번째 내가 특정 프로그램명을 알고 있을 때 그 특정 프로그램의 윈도우 핸들을 구할 수 있다. 그러면, 핸들에서 프로세스 ID를 구할 수 있게 된다. 그 다음 순서는 분명하다. 프로세스를 강제로 종료시키는 것이다. 그럼 아래 소스를 살펴보자. HWND hOsk=::FindWindow(NULL, "SBRICH"); if(hOsk) { CWnd* p = CWnd::FromHandle(hOsk); CString sT; p->GetWindowTextA(sT); DWORD pid2; DWORD pid = GetWindowThreadProcessId(hOsk, &pid2); // 바로서치 핸들로 프로세스 id를 구한다. HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, .. 2011. 4. 15.
[개발/MFC] 유휴 루프 처리 유휴 루프 처리 Visual Studio .NET 2003 많은 응용 프로그램은 "백그라운드에서" 처리 시간이 긴 작업을 수행합니다. 경우에 따라 이러한 작업에 다중 스레딩을 사용하면 성능을 향상시킬 수 있습니다. 스레드로 인해 개발 과정에 불필요한 오버헤드가 발생하기 때문에 MFC가 OnIdle 함수에서 수행하는 유휴 시간 작업과 같은 단순 작업에는 적당하지 않습니다. 따라서 이 문서에서는 유휴 처리를 중심으로 설명합니다. 다중 스레딩에 대한 자세한 내용은 다중 스레딩 항목을 참조하십시오. 일 부 백그라운드 처리는 사용자가 응용 프로그램과 상호 작용을 하지 않는 동안에 적절하게 수행됩니다. Microsoft Windows 운영 체제용으로 개발된 응용 프로그램은 시간이 많이 걸리는 프로세스를 여러 개의 .. 2011. 4. 15.
반응형