본문 바로가기

MFC

[MFC]웹브라우저 컨트롤 호스팅시 스크립트 실행 안되게 하기 웹브라우저 컨트롤을 이용한 어플리케이션을 제작하거나 MSHTML을 이용하여 HTML을 파싱하는 등의 경우에 필요에 따라 웹 페이지의 스크립트를 꺼야 하는 경우가 있습니다. 제 생각에, 이걸 편하기 하기 위해 제공되는게 IDocHostUIHandler::GetHostInfo 메소드인 것 같더군요. VC++ 7 이상에는 MFC CHtmlView에 IDocHostUIHandler 처리 기능이 추가됐기 때문에 그냥 메소드 하나 오버라이드하여 손쉽게 처리할 수 있습니다. 이 내용은 자료실에서 제 ID로 검색해 보시면 찾으실 수 있습니다. 그런데 제 기억으로는 IE 6.0일 때 이 방법을 테스트 해본 것 같고.. 그때 정말 스크립트가 실행 안됐던 것 같은데 지금 다시 해보니 전혀 안 먹더군요. 아무리 해도 스크립트.. 더보기
[MFC] 파일 복사 함수 CopyFile(원본 파일 경로, 결과 파일 결로, 덮어쓰기 여부); 덮어쓰기여부는 TRUE는 fail, FALSE는 덮어쓰기 더보기
[MFC] MFC로 외부프로그램 실행 해보기! ShellExecute() MFC로 외부프로그램 실행 해보기! MFC ShellExecute 함수를 이용하여 실행 하는 프로그램 만드는 예제입니다. 위 스냅샷은 실행 결과입니다. 아무파일이나 선택하구 실행하기 버튼을 누르면 그에 맞는 프로그램으로 실행이됩니다. 결과가 궁금하시면 첨부 file을 직접 down 받아 실행해보시기 바랍니다. ShellExecute 함수원형 HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ); 윈도우 탐색기에서 해당 파일을 더블 클릭한 것과 완벽하게 일치하는 동작을 하는 함수 Hwnd : 부모 윈도우의 핸들이며, 이 값이 NULL이므로 부모 윈도우는 바탕화면이 됩.. 더보기
[MFC] MFC COleDateTime 이용해 시스템 날짜 시간 얻기 1. COleDateTime는? COleDateTime는 유동적으로 변하는 시스템의 날짜와 시간의 값을 얻거나 수정할수 있다. 2. 사용 예제 1) 현재 시스템의 년/월/일/시/분/초 를 얻어 오는 예제 COleDateTime의 객체를 생성한다. static COleDateTime WINAPI GetCurrentTime( ) throw( ); 현재 날짜/시간을 리턴해 주는 메서드를 이용해 mdiStart를 초기화 해준다. 년/월/일/시/분/초 를 출력해서 값을 확인해 본다. 2) 요일 알아오기. int GetDayOfWeek( ) const throw( ); 메서드를 이용해서 요일을 알아 올수 있다. 보면 알겠지만 반환타입이 int이다. 1~7(일~월)을 리턴한다. 3) 날짜/시간 수정하기 int Set.. 더보기
[MFC] 버튼의 동적생성 [질문 내용] mfc위자드로 CView로 상속받은 (SDI)프로젝트를 생성했습니다. 그리고 뷰에 1행에 동적으로 버튼을 행맞춰서 만들고 싶은데, 아무리 생각해도 모르겠군요. 동적으로 말입니다. 4개든 10개든.... 그리고 각 버튼을 눌렀을때 메시지박스가 나와 "현재버튼은 1입니다." 같이 나왔으면 합니다. 다시말해 이벤트 핸들러도 동적으로 만들어야 합니다. 너무나 어려워 질문드립니다. [답변 내용] 안녕하세요~! 먼저 동적으로 버튼을 5개 생성시킨다고 가정하고 해더파일에 #define MAX_BUTTON_COUNT 5 라고 먼저 정의하고, 버튼을 동적으로 만들어서 사용해야하니까 동적으로 생성된 버튼을 관리할 변수를 선언해야겠죠? 클래스 선언부에 말이죠!! private: CButton *mp_test_.. 더보기
[MFC] SDI 환경에서 버튼의 동적 생성과 메시지를 처리하는 방법 [질문 내용] mfc위자드로 CView로 상속받은 (SDI)프로젝트를 생성했습니다. 그리고 뷰에 1행에 동적으로 버튼을 행맞춰서 만들고 싶은데, 아무리 생각해도 모르겠군요. 동적으로 말입니다. 4개든 10개든.... 그리고 각 버튼을 눌렀을때 메시지박스가 나와 "현재버튼은 1입니다." 같이 나왔으면 합니다. 다시말해 이벤트 핸들러도 동적으로 만들어야 합니다. 너무나 어려워 질문드립니다. [답변 내용] 안녕하세요~! 먼저 동적으로 버튼을 5개 생성시킨다고 가정하고 해더파일에 #define MAX_BUTTON_COUNT 5 라고 먼저 정의하고, 버튼을 동적으로 만들어서 사용해야하니까 동적으로 생성된 버튼을 관리할 변수를 선언해야겠죠? 클래스 선언부에 말이죠!! private: CButton *mp_test_.. 더보기
[MFC] 컨트롤 동적 생성 이것저것 하다보면 컨트롤들을 동적으로 생성해야하는 경우가 있을 수 있다. 그런 경우는 다음 순서로 행하면 된다. 1. xxxxDlg.h 파일에 원하는 컨트롤의 변수를 선언한다. 2. 원하는 위치(특정 이벤트 발생에 대한 처리 부분)에서 Create() 3. Resource.h에 ID를 설정 그럼 위의 순서에 따라서 버튼을 눌렀을 때 달력이 동적으로 생성되로록 해보겠다. 더보기
[MFC] 버튼에 이미지 넣기 MFC 버튼에 이미지를 넣는 예제 입니다. 소스는 테스트 용이라 공개하지 않고요 (캡쳐만 뜨고 지워버린;) 초보자분도 이대로 따라만 하시면 충분히 할 수 있을 거라 생각합니다. Ctrl + Shift + E 를 누르시면 다음과 같은 리소스 뷰가 나타난다. dialog 에 가면 IDD_DIALOG 이라는 친구가 있는데 야를 더블클릭하면 이런 창을 만날수 있슴. 여기서 도구상자에 가서 Button을 생성해준다. 그냥 드레그로 다가 살짝 끌어당겨 줌 만들어 진다. 그럼 이러한 버튼이 생성된다. 버튼을 누르고 오른쪽 버튼을 눌러주면 이러한창이 나타나고 [변수추가]라는 버튼을 살며시 눌러준다. 그럼 이러한 창이 나타나고 여기서 중요한게 두가지가 있다. 1. 변수 형식을 꼭 CBitmapButton 2. 변수 이름.. 더보기
[MFC] GetStyle(), ModifyStyle()을 사용한 윈도우 스타일 변경 // GetStyle함수로 현재 적용된 스타일을 알아낼 수 있으며, // ModifyStyle함수로 특정 스타일을 추가 또는 제거할 수 있습니다. ^^ // (SetStyle함수나 DeleteStyle함수가 없고, 대신 ModifyStyle함수가 있는 겁니다.) DWORD GetStyle( ) const; 리턴값 : 윈도우의 스타일, 해당 스타일을 AND마스크연산으로 구할 수 있다. BOOL ModifyStyle( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 ); dwRemove 에는 제거하고 싶은 스타일들을 비트연산자 중 OR(|)연산자로 여러개 묶어서 넣을 수 있으며, dwAdd에는 .. 더보기
[MFC] ListCtrl 구현 관련 사이트 모음 http://blog.naver.com/PostView.nhn?blogId=ponyboy&logNo=120065172914 더보기
[MFC] error C2593: 'operator +='이(가) 모호합니다. 문자열 사이의 '+=' 연산자에 대해 모호하다는 에러가 발생하는 경우, 예를 들어, CString strTmp; strTmp = "Test String!"; m_str += (LPCTSTR)strTmp; //(LPCTSTR)형으로 캐스팅 해주어야 에러가 없어진다. 더보기
[MFC] error C2664: 'CWnd::MessageBoxW' : 매개 변수 1을(를) 'CMainFrame *const '~'LPCTSTR'(으)로 변환할 수 없습니다. MFC로 처음 응용 프로그램 마법사를 실행할 때 간단하게 대화상자 기반 프로그램을 선택하고 유니코드 라이브러리 사용 에 체크를 했다. 간단하게 Dlg.cpp에서 OnInitDialog()에 밑의 두 문장을 추가했는데 오류가 발생했다. AfxMessageBox("OK!"); MessageBox("hi"); ------------------------------------------------------------------------------------------ error C2665: 'AfxMessageBox' : 2개의 오버로드 중 모든 인수 형식을 변환할 수 있는 오버로드가 없습니다. c:\program files\microsoft visual studio 8\vc\atlmfc\include\af.. 더보기