728x90

Application/MFC 51

[MFC] Picture Control Resource Bitmap 이미지 넣기

우선 리소스에서 Bitmap을 추가해 줍니다 다음 DIALOG 화면에서 Picture Control을 추가해 줍니다 Picture Control의 속성값은 아래와 같이 ID를 변경하고 Type을 Bitmap으로 수정합니다 그 후 컨트롤의 멤버 변수를 추가합니다 마지막으로 아래와 같이 작성하면 됩니다 BOOL CMFCDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는 // 프레임워크가 이 작업을 자동으로 수행합니다. SetIcon(m_hIcon, TRUE);// 큰 아이콘을 설정합니다. SetIcon(m_hIcon, FALSE);// 작은 아이콘을 설정합니다. HBITMAP h..

Application/MFC 2024.01.24

[MFC] 웹 페이지 읽기 (API 읽어 오기)

웹 페이지를 읽기 위해서는 우선 wininet.h 헤더 파일과 wininet.lib lib 파일을 추가합니다 이후 아래와 같이 함수를 작성하면 웹을 읽을 수 있습니다 #include "wininet.h" #pragma comment(lib, "wininet.lib") CString CMainModule::GetWebData(CString strURL) { CString strData(_T("")); HINTERNET hInternet = InternetOpen(_T("Temp"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); if (hInternet != NULL) { HINTERNET hInternet2 = InternetOpenUrl(hInternet, strURL, ..

Application/MFC 2024.01.06

[MFC] C1090 오류 & E0020 (PDB API 호출 오류)

Release 빌드 중 아래와 같은 오류가 발생 해당 오류로 인해 빌드가 제대로 되지 않아 실행 파일이 생성이 안 되는 문제가 생겨서 인터넷을 뒤져 찾아 해결법을 발견해서 기록에 남깁니다 상단의 메뉴 중 [디버그] - [옵션] 설정 창을 활성화 합니다 이후 [디버깅] 메뉴에서 기호 파일 (.pdb) 위치 항목의 Microsoft 기호 서버 항목을 체크합니다 체크 후 해당 창이 뜨는데 확인을 눌러 주시면 됩니다 설정 완료 하시면 됩니다 프로그램을 재 빌드 하시면 정상적으로 빌드가 완료되는 것을 확인하실 수 있습니다 > .- 다음날 문제가 재 발생 해서 다시 시도 해본 결과 계속 해당 오류를 반환 .- 해당 오류 발생 프로젝트 폴더가 Git Repository 로 지정되어 있음을 의심 .- Git 제거 후 ..

Application/MFC 2023.12.21

[MFC] 16진수 변환(CString <-> BYTE)

CString의 문자열을 16진수로 변환하고자 할 때 사용하는 함수입니다 wcstol 함수이며 사용 방법은 아래와 같습니다 CString strMacAddress = _T("1A2B3C4D"); WCHAR szData[9]; BYTE szValue[4]; wcscpy_s(szData, strData); szValue[0] = (BYTE)wcstol(((WCHAR *)szData) + 0, NULL, 16); szValue[1] = (BYTE)wcstol(((WCHAR *)szData) + 2, NULL, 16); szValue[2] = (BYTE)wcstol(((WCHAR *)szData) + 4, NULL, 16); szValue[3] = (BYTE)wcstol(((WCHAR *)szData) + 6,..

Application/MFC 2023.07.06

[MFC] GetPrivateProfileString / WritePrivateProfileString

MFC 사용 중 INI 파일을 간단히 읽고 쓰기를 위해서는 읽기 함수 GetPrivateProfileString 과 쓰기 함수 WritePrivateProfileString를 씁니다 INI 파일의 기본 작성 방식은 [섹션] 키=값 형식으로 구성 되어 있으며 읽기의 경우 WCHAR szValue[MAX_PATH]; GetPrivateProfileString(_T("Section"), _T("Key"), _T("Default"), szValue, sizeof(szValue), PATH); 위와 같은 방식으로 섹션, 키, 값이 없을 시 받을 값, 입력된 값, 입력값 크기, 파일 위치 값을 입력해서 코드를 작성하시면 됩니다 쓰기의 경우는 WritePrivateProfileString(_T("Section"), ..

Application/MFC 2023.06.28

[MFC] CWnd 화면을 클립 보드로 복사하기

화면을 클립보드에 넣기 위한 코드입니다 함수 호출 이후 그림판 등으로 붙여 넣기 했을 시 저장된 화면이 보입니다 void CWndToClipboard(CWnd *pWnd, CRect rect) { CBitmap bmp; CClientDC dc(pWnd); CDC memDC; memDC.CreateCompatibleDC(&dc); bmp.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height()); CBitmap* pOldbmp = memDC.SelectObject(&bmp); memDC.BitBlt(0,0,rect.Width(),rect.Height(), &dc, 0,0,SRCCOPY); pWnd->OpenClipboard(); EmptyClipboard(); Set..

Application/MFC 2023.05.09

[MFC] Thread 동기화 (CreateEvent)

Thread 사용 시 함수의 중복된 실행을 막기 위해 사용하는 방법입니다 우선 헤더 파일에 이벤트 핸들을 추가합니다 HANDLE m_hEvent; 그 후 생성자 함수에서 이벤트를 생성합니다 CMyClass::CMyClass() { m_hEvent = CreateEvent(NULL, FALSE, TRUE, NULL); } CreateEvent 함수의 인자값으로는 첫 번째 : 이벤트 속성 (기본 NULL 값) 두 번째 : 매뉴얼 설정 (자동 설정의 경우 FALSE) 세 번째 : 초기값 (초기 활성화 시 TRUE) 네 번째 : 이벤트명 ( 기본 NULL 값) 생성 후 함수에서 아래와 같이 작성하면 동기화가 완료됩니다 void CMyClass::MyFunc() { WaitForSingleObject(m_hEve..

Application/MFC 2023.05.03
728x90
반응형