mfc 6

[MFC] 팁

리스트박스 컨트롤에서의 여러 항목 선택MFC에서 리스트박스 컨트롤을 사용하여 여러 항목을 동시에 선택 가능하도록 하고 싶다. 즉, Shift 키나 Ctrl 키를 사용하여 다중 선택하게 하고 싶은 데 어떻게 해야 하는가 ? 이는 별도의 메소드 등을 사용하여 해결되는 문제가 아니고 리스트박스 컨트롤의 스타일로 Extended를 선택해야 한다.  프로그램을 하나만 실행하기내가 만드는 프로그램을 항상 하나만 실행하도록 하려면 어떻게 해야 하나 ? 그리고 두 번째 실행시에는 먼저 실행되어 있던 프로그램을 앞으로 띄우고 싶다.만일 프로그램의 캡션이 고정되어 있다든가 사용되는 윈도우의 클래스 이름을 알고 있다면 FindWindow 혹은 FindWindowEx를 사용하면 아주 손쉽게 문제를 해결할 수 있다. 하지만 윈..

유용한 정보 2024.12.27

[MFC] 텍스트 파일을 리소스에 추가 하여 불러오는 방법

제목 그대로 텍스트 파일을 리소스에 추가하여 읽어오는 방법입니다.리소스에 텍스트파일을 추가하고 ID는 IDR_TXT1로, 리소스 타입은 TXT로 임의로 정했습니다. TCHAR buff[512] = {0,};HGLOBAL hGlobal;HGLOBAL hRes;LPSTREAM lpStream;COleStreamFile StreamFile;//리소스ID와 타입으로 리소스정보를 읽어 옵니다.HRSRC resInfo = FindResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_LICENSE), _T("RTF"));//리소스정보를 이용하여 리소스를 읽어옵니다.hRes = LoadResource(AfxGetInstanceHandle(), resInfo);//메모리에 로드된..

유용한 정보 2024.12.26

[MFC]XP 버전의 ActiveX를 Vista 이상버전으로 권한상승시키는 방법

프로젝트 만들기 >>     프로젝트 속성 설정 >>     클래스 추가 >>  Events 를 발생시킬 때 사용됨    컨트롤을 제대로 로드하려면 IObjectSafety가 필요함 >>-.추가한 컨트롤의 헤더파일에서 IObjectSafety 를 사용가능하게 한다. 예를들면 class ATL_NO_VTABLE CDMWebAgentCtrl : public CComObjectRootExCComSingleThreadModel>, public IDispatchImplIDMWebAgentCtrl, &IID_IDMWebAgentCtrl, &LIBID_DMWebAgentLib, /*wMajor =*/ 1, /*wMinor =*/ 0>, public IPersistStreamInitImplCDMWebAgentCtrl>..

유용한 정보 2024.12.26

[MFC]마우스 드래그에 의한 윈도우 이동

void CDownloadDlg::OnLButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call defaultif(m_rcTitle.PtInRect(point)){m_bMouseDown = true;SetCapture();// 타이틀바를 클릭한 상태에서 다이얼로그를 이동하기 위한 시작 포인터 설정m_ptMouseDown = point;}elsem_bMouseDown = false;CDialog::OnLButtonDown(nFlags, point);}void CDownloadDlg::OnLButtonUp(UINT nFlags, CPoint point) {// TODO: Add your messa..

유용한 정보 2024.12.26

[MFC] Dialog 기반 ActiveX 만들기

전 과목 스타 선생님+영수 심화+영재교육원까지! 초등 인강 '엘리하이'상담 신청하기» 1. 다이얼로그 추가 2. 속성Style->Style = Child Style->Border = None More Style->Visible = check More Style->Control = check 3. 다이얼로그 클래스 생성 4. Ctl.h 에 선언#include "MainDlg.h"CMainDlg* m_MainDlg; 5. Ctl 클래스WM_CREATE맵핑m_MainDlg= new CMainDlg;m_MainDlg->Create(IDD_MAIN_DLG, this); 6.OnDrawif(m_MainDlg)m_MainDlg.MoveWindow(rcBounds, TRUE); 7. InitInstance() 에Afx..

유용한 정보 2024.12.25

MFC 확장 DLL 리소스 로딩 오류

MFC 확장 DLL 에 있는 리소스 (예:다이얼로그)를 사용할 때다이얼로그의 일부 자원(예:버튼)이 사라지는 현상이 발생했을 때extern "C" __declspec(dllexport)와 사용하는 함수 내부에 AFX_MANAGE_STATE(AfxGetStaticModuleState());를 사용하면 해결이 된다. 예제)1. MFC 확장 DLLclass __declspec(dllexport) CMessageDlg : CDialog{} 2. MFC 확장 DLL 사용하기#include "../MfcDll/MessageDlg.h" extern "C" __declspec(dllexport) int gCallMessageDlg(CString strMsg){    AFX_MANAGE_STATE(AfxGetStatic..

기본카테고리 2022.11.24