본문 바로가기
반응형

C++18

MS WORD AUTOMATION How to do ms word automation in visual studio 2019 1. Create an MFC app 2. Advanced Feature Options - Automated Checks 3. When a project is created, a new item is added for word automation. First, right-click in the Class Explorer and click the Add, New Item button. 4. MFC Class From TypeLib Select and click , add button push 2023. 2. 16.
CString increment code example CString strIndex = _T("A"); int addIndexNum = 1;// Use as many numbers as you like. //Change to match encoding ( LPWSTR, LPCWSTR -> LPSTR, LPCSTR ) strIndex.Format(_T("%c"), ((*(LPWSTR)(LPCWSTR)(strIndex)) + addIndexNum)); // result CString is A to B 2020. 12. 15.
How to remove the console window #include "Stdafx.h" #pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup") void main() { ... ..... } 2020. 12. 1.
다이얼로그 숨김 프로그램 처음 시작할때부터 숨김. ShowWindow(SW_SHOWMINIMIZED); PostMessage(WM_SHOWWINDOW, FALSE, SW_OTHERUNZOOM); 2020. 7. 16.
CFile Function Write() CFile Write() CFile file; CString strData = _T("ABC"); file.Open(_T("out.text"), CFile::modeCreate | CFile::modeWrite); file.Write(strData, strData.GetLength()*sizeof(TCHAR)); //// sizeof(TCHAR) importent file.Close(); 2020. 6. 24.
MFC ListControl Func How to MFC ListControl Add CheckBox void ListView_SetExtendedListViewStyle(HWND hwndLV, DWORD dwExStyle) DWORD SetExtendedStyle(DWORD dwNewStyle) LVS_EX_CHECKBOXES BOOL ListView_GetCheckState(HWND hwndLV, UINT index) void Cxxx::OnLvnItemchangedxxx(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR); // LVS_EX_CHECKBOXES // State image 1 is the unchecked box, and stat.. 2020. 6. 23.
How to MFC ListControl Header Size Auto Setting LVSCW_AUTOSIZE_USEHEADER 사용 example m_ctrlListXmlFile.InsertColumn(0, _T("파일이름"), LVCFMT_LEFT); ListView_SetColumnWidth(m_ctrlListXmlFile.GetSafeHwnd(),0, LVSCW_AUTOSIZE_USEHEADER); 이렇게 하면 리스트 컨트롤 사이즈에 맞게 자동으로 늘어나있음. 만약 다이얼로그 크기를 변경할때 같이 변경하길 원한다면 OnSize 함수에 ListView_SetColumnWidth(); 이걸 넣으면 된다. 참고: https://docs.microsoft.com/en-us/windows/win32/api/commctrl/nf-commctrl-listview_setcolumnwidth 2020. 6. 2.
CString Path 경로 가져오기 // m_str_Path 2020. 6. 2.
MFC 실행파일 경로 찾기 실행파일 경로 받아오기 TCHAR strFilePath[256]; GetModuleFileName(NULL, strFilePath, sizeof(strFilePath)); -실행파일 경로및 확장자포함 PathRemoveFileSpec(strFilePath); - 파일 경로에서 파일명과 확장자만 제거 참조: https://docs.microsoft.com/ko-kr/windows/win32/api/pathcch/nf-pathcch-pathcchremovefilespec?redirectedfrom=MSDN 2020. 6. 2.
CString Function Example Sample ------------------Find--------------------------------------------------- int Find (TCHAR ch) const; 단일문자 검색 검색된 위치 리턴, 실패시 -1 int Find (TCHAR ch, int nStart) const; 검색 시작 위치 지정, 단일문자 검색 검색된 위치 리턴, 실패시 -1 int Find (LPCTSTR lpszSub) const; 문자열 검색 검색된 위치 리턴, 실패시 -1 int Find (LPCTSTR lpszSub, int nStart) const; 검색 시작 위치 지정, 문자열 검색 검색된 위치 리턴, 실패시 -1 ------------------Find----------------------------.. 2020. 6. 2.
std::stringstream std::getline #include std::fstream fs; // 파일 스트림 fs.open(strPathText, std::ios::in); // 파일 읽기 std::string str_buf; while (!fs.eof()) { std::string line; std::getline(fs, line); std::stringstream lineStreadm(line); // 한줄 읽은 string 을 스트림 으로 std::getline(lineStream, str_buf, ','); // "," 기준 } 2020. 6. 2.
Using struct access[] struct Point { int x; int y; int z; int& operator[] (int index) {return * (&x, index);} }; 출처: http://qiita.com/_meki/items/eb17ecae1a7ba2fd458a 2020. 6. 2.
MFC Feature Pack - CMFCEditBrowseCtrl Get Path MFC Feature Pack - CMFCEditBrowseCtrl Dlg Header file declaration CMFCEditBrowseCtrl m_wndFileEdit; Dlg cpp file DoDataExchange part DDX_Control(pDX, IDC_FILE_EDIT, m_wndFileEdit); BEGIN_MESSAGE_MAP ON_EN_CHANGE(IDC_FILE_EDIT, OnEnChangeFileEdit) OnInitDialog() { m_wndFileEdit.EnableFileBrowseButton(); // or csv file open and all file filter settting // m_wndFileEdit.EnableFileBrowseButton(0,_T(.. 2020. 6. 2.
"DTD cannot be used" when loading C++ xml DOM. Methods that can be used for error messages MSXML2::IXMLDOMDocument2Ptr m_s_pXMLDom; m_s_pXMLDom->setProperty("ProhibitDTD", false); // DTD error resolution - MSDN refrence https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms762632(v%3Dvs.85) 2020. 6. 2.
AfxGetMainWnd() _AFXWIN_INLINE CWnd* AFXAPI AfxGetMainWnd() { CWinThread* pThread = AfxGetThread(); return pThread != NULL ? pThread->GetMainWnd() : NULL; } AfxGetThread(); : 현재 쓰레드의 GetMainWnd() 함수를 호출 즉 다른쓰레드에서 사용하려면 AfxGetApp()->GetMainWnd() 사용 2020. 5. 28.
MFC Class cross reference CWinApp CWinApp* AfxGetApp(); 메인프레임 윈도우 CWnd* AfxGetMainWnd(); 뷰에서 도큐먼트 Document* CView::GetDocument(); 뷰에서 뷰를 둘러싸고 있는 프레임윈도우 CFrameWnd* CWnd::GetParentFrame(); 도큐먼트에서 뷰 POSITION pos = GetFirstViewPosition(); While(pos != NULL){ CView* pView = (CView*)GetNextView(pos); if(pView->IsKindOf(RUNTIME_CLASS(CTestView))) { pView->UpdateWindow(); } } 도큐먼트에서 프레임 윈도우 단일 도큐먼트: AfxGetMainWnd(); 다중 도큐먼트: 도큐먼.. 2020. 5. 28.
How to use the CInternetSession OpenURL CInternetSession cInternetSessiong; CInternetFile* pcInternetFile = NULL; try { pcInternetFile = (CInternetFile*)cInternetSessiong.OpenURL(strURL, 1, INTERNET_FLAG_TRANSFER_ASCII); } catch (CInternetException* fe) { fe->ReportError(); fe->Delete(); } if (pcInternetFile != NULL) { // TODO pcInternetFile->Close(); delete pcInternetFile; cInternetSessiong.Close(); } 2020. 5. 22.
CInternetFile ReadString -- File Download CString strFullText = _T(""); CString strTemp = _T(""); while (pcInternetFile->ReadString(strTemp)) { strFullText += CA2W((LPCSTR)strTemp.GetBuffer(), CP_UTF8); // When reading files from CInternetFile .. Important strTemp.ReleaseBuffer(); } strFullText.Remove(_T('\t')); // tab del strFullText.Remove(_T('\n')); // del strFullText.Remove(_T('\r')); // del file.Open(file name, CFile::modeCreate | .. 2020. 5. 19.
반응형