본문 바로가기
반응형

C & C++444

CMap 템플릿 클래스 사용하기 CMap은 사전이라고 생각하시면 됩니다. CArray는 배열이죠. 그래서 첨자에 의해서, 즉 순서를 지정해서 값을 저장하고 읽습니다. 하지만 CMap은 순서가 아니라 키에 의해서 값을 저장하고 읽게 됩니다. 예를 들어서, 영한 사전을 생각해보세요. boy라는 영어 단어와 소년이라는 해석은 쌍으로 존재할 때 의미가 있습니다. 만약 배열을 쓴다고 하면, 영어 단어 배열과 한글 해석 배열, 이렇게 두개가 필요합니다. 그리고 어떤 영어 단어의 해석을 보고 싶다면 영어 단어 배열에서의 해당 단어 위치를 구하고, 한글 해석 배열의 해당 위치의 해석을 꺼내야 합니다. 하지만 CMap을 사용하면, 키와 값을 한꺼번에 저장하고 읽을 수 있습니다. boy를 키로 저장하면서 동시에 소년이라는 해석도 값으로써 저장할 수 있죠.. 2013. 5. 24.
특정 색상을 제외한 투명한 다이얼로그 특정 색상을 제외한 투명한 다이얼로그 SetWindowLong(this->m_hWnd, GWL_EXSTYLE, GetWindowLong(this->m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED); ::SetLayeredWindowAttributes(this->m_hWnd, RGB(255, 255, 255), 0, LWA_COLORKEY); // RGB(0, 0, 0) 값을 제외시킨다. 2013. 5. 7.
CString 특정문자 갯수 구하기 CString 특정문자 갯수 구하기 //############################################################## 1. #include using namespace std; CString str = "abcdaaabbb11"; int nCount = count((LPCTSTR)str, (LPCTSTR)str+str.GetLength(), _T('a')); //############################################################## 2. CString str("This is a test."); int n = str.Remove('t'); ASSERT(n == 2); //##################################.. 2013. 2. 22.
MFC 에서 임의의 클래스의 포인터 얻기 MFC 에서 임의의 클래스의 포인터 얻기 Ⅰ 일반적인 SDI 프로그램에서.1.애플리케이션 클래스의 포인터를 얻을 때CWinApp* AfxGetApp() 2. 메인 프레임 클래스의 포인터를 얻을 때CWnd* AfxGetMainWnd()Exam) CTestApp *pApp = (CTestApp *)AfxGetApp();CMainFrame *pFr = (CMainFrame *)AfxGetMainWnd();이 외에 뷰 클래스에서 그 뷰를 둘러싸고 있는 프레임 윈도우를 참조할 때는CFrameWnd* GetParentFrame() constCf. GetParentFrame() 함수는 CWnd() 클래스의 멤버함수Cf. 이 함수와 AfxGetMainWnd() 함수는 SDI에서는 같은 기능을 하지만, MDI에서는 메인.. 2012. 12. 31.
시간 연산 관련 함수 모음 함 수 정리 GetLocalTime : IpSystemTime (현재 로컬 시간을 대입받을 SYSTEMTIME 구조체 사용합니다.) ( 바로가기 ) GetTickCount : 수행 시간을 측정 할때 많이 사용하는 함수( 바로가기 ) GetSystemTime : 현재 Windows System상의 날짜 및 시간을 반환 하는 함수( 바로가기 ) MFC CTime : MFC에서 사용하는 시간 관련 클래스 단, Millisecond는 없다. ( 바로가기 ) CTime::CurrentTime() : 현재 시간을 구하기 CTimeSpan : MFC에서 사용하는 시간을 연산하는 방법이다. ( 바로가기 ) 그외 ------------------------------------------------------------.. 2012. 11. 28.
다이얼로그 최대화 하는 2가지 방법 방법 1) ShowWindow(SW_MAXIMIZE); ============================================================================================== 방법 2) //OnInitDialog() 부분에 추가하면 된다. LONG style = ::GetWindowLong( m_hWnd, GWL_STYLE ); style &= ~WS_CAPTION; style &= ~WS_SYSMENU; ::SetWindowLong( m_hWnd, GWL_STYLE, style ); int screenx = GetSystemMetrics( SM_CXSCREEN ); int screeny = GetSystemMetrics( SM_CYSCREEN ); //.. 2012. 11. 28.
반응형