본문 바로가기

컴퓨터/MFC_API32

저장하기 대화 상자 열기 CFileDialog instance의 생성자로 false 를 주면 '저장하기' 대화 상자가 열린다. CFileDialog의 생성자로 지정할 수 있는 옵션은 MSDN 을 참고하면 다음과 같다. CFileDialog::CFileDialog( BOOL bOpenFileDialog, // true 이면 '열기', false 이면 '저장' 대화 상자 LPCTSTR lpszDefaultExtention = NULL, // 기본 확장자 LPCTSTR lpszDefaultFileName = NULL, // 기본 파일 이름 DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, // 옵션 LPCTSTR lpszFilter = NULL, // 파일 확장자 필터 CWnd* pP.. 2009. 12. 14.
클립보드(clipboard) 내용 가져오기 클립보드를 열고, 데이터를 얻어 오고, 클립보드를 닫는 순서로 진행한다. if(OpenClipboard() == false){ return false; // 클립보드를 열지 못했다. 더이상 작업을 진행할 수 없다. } /// 클립 보드 내용을 얻어 가는 부분..// 클립보드의 메모리 공간을 텍스트로 접근 설정. HGLOBAL hglobal = GetClipboardData(CF_TEXT);// 메모리를 잠가 놓고, LPTSTR lptstr = (LPTSTR)GlobalLock(hglobal); // CString 형 변수를 메모리로부터 만들고, CString str(lptstr); // begin of program specific jobs // --- 적당한 작업을 해준다. (여기선 텍스트에 약간의 변.. 2009. 12. 9.
CListCtrl의 Report 형식에서, 선택된 모든 항목 삭제하기 CListCtrl을 Report 형식으로 사용하고 있을 때, 선택된 모든 항목을 제거하기 위해서는 다음과 같이 한다. // [_lstReport] 는 CListCtrl 형의 변수이고, Report 형식으로 되어 있다. POSITION pos = _lstReport.GetFirstSelectedItemPosition(); // 선택된 첫 번째 위치를 얻어 와서, while(pos != NULL){ // 위치가 유효하다면, int nItem = _lstReport.GetNextSelectedItem(pos); // 그 위치에 해당하는 item의 index 를 얻고, _lstReport.DeleteItem(nItem); // 그 item 을 지운다. pos = _lstReport.GetFirstSelected.. 2009. 12. 9.
팝업 메뉴 (popup menu) 띄우기 팝업 메뉴의 위치는 기본적으로 스크린 좌표계를 이용한다. CMenu menu; menu.LoadMenu(IDR_REPORT_MENU); // popup 메뉴가 들어 있는 메뉴를 불러 와서, CMenu *pPopup = menu.GetSubMenu(1); // 두 번째 메뉴를 따내서 POINT pt = { 0 }; ::GetCursorPos(&pt); // 마우스 커서의 좌표를 얻은 후 pPopup->TrackPopupMenu(TPM_CENTERALIGN, pt.x, pt.y, this); // 마우스 위치로 팝업을 띄운다. 이 때, 좌표로 준 위치가 팝업에 대해 어느 기준인가를 결정하는 인자가 TrackPopupMenu의 첫 번째 인자이다. TPM_CENTERALIGN 으로 하면 인자로 준 x,y 위치가.. 2009. 12. 9.