[카테고리:] MFC

  • DirectX 선그리기

    DirectX 선그리기… VertexBuffer 말고 다른 방법으로 선을 그리고 싶었다… ID3DXLine 이란것이 있었따!! D3DXVECTOR3 p[3]; p[0].x =0; p[0].y = 0; p[0].z = 0.0f; p[1].x =0.1; p[1].y = 1; p[1].z = 0.0f; p[2].x =2; p[2].y = 0; p[2].z = 0.0f; p는 오브젝트의 월드공간에 있어야함 —————————————————————————- Device->BeginScene(); ID3DXLine *Line; D3DXCreateLine(Device, &Line); Line->SetWidth(width); Line->SetAntialias(true); Line->Begin(); Line->DrawTransform(p, 3, &(worldMat*viewMat*projMat), D3DXCOLOR(0.0f, 0.0f, […]

  • Up2Bottom and Left2Right Sorting Algorithm

    // ======================================================== // Up2Bottom and Left2Right Sorting Algorithm // addressing (weakly) sparse rectangles // — // Usage: Select the objects, then run the script // Target: InDesign CS4/CS5/CS6/CC // ======================================================== const CS = +CoordinateSpaces.SPREAD_COORDINATES, AP_MIN = +AnchorPoint.TOP_LEFT_ANCHOR, AP_CENTER = +AnchorPoint.CENTER_ANCHOR, AP_MAX = +AnchorPoint.BOTTOM_RIGHT_ANCHOR; var sel = app.properties.selection || null, data = [], r, i, j, […]

  • [MFC] CTreeCtrl 자식 아이템 체크/ 해제

    CTreeCtrl 을 사용해서 체크박스를 단후 체크박스를 체크 하면 자식들도 모두 체크 하거나 체크 해제 하고 싶을 경우가 있는데. 이럴때 다음과 같은 방법으로 자식 노드를 재귀호출하여 체크/해제 할수 있다. 먼저 클릭 이벤트를 만들다. 핸들러는 TVN 게열과 NM 계열이 있는데 . 해당 체크 박스를 좌클릭 했을때 자식아이템을 쳌,/ 해제 하기를 원하기 때문에 NM_CLICK 이벤트를 선택한다. 코드는 다음과 […]

  • VC++ warning C4482: 해결

    warning C4482: 비표준 확장이 사용되었습니다. 정규화된 이름에 ‘…’ 열거형을 사용했습니다. 이 경고 메세지는 형식 내부(클래스, 구조체, 네임스페이스 등)에 선언된 이름있는 enum(열거형)을 사용하게 되었을 때 나타나는 증상입니다. – 해결 방법 잘못된 방법 : classname::enumname::__temp 잘된 방법 : classname::__temp

  • CString to String & String to CString

    [CString to string] CString CfilePath=_T(“abcavc”); std::string filePath((LPSTR)(LPCTSTR)CfilePath); <- 이렇게 했더니 제대로 안뜸!!! CT2CA pszConvertedAnsiString (CfilePath); std::string filePath(pszConvertedAnsiString); 과 같이 바꿔주어야 한다! [string to CString] std::string str = “Hello”; CString Cstr(str.c_str());

  • MFC 파일선택 대화상자

    한개의 파일만 선택할 경우 char szFilter[] = “Image (*.BMP, *.GIF, *.JPG) | *.BMP;*.GIF;*.JPG | All Files(*.*)|*.*||”; CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter); if(IDOK == dlg.DoModal()) {         CString strPathName = dlg.GetPathName(); }     여러개의 파일을 복수 선택할 경우   dwFlag에 OFN_ALLOWMULTISELECT 설정한다.         선택된 여러 파일 리스트가 저장될 […]

  • 윈도우 OS가 몇 비트 인지 알아오는 방법

    윈도우 OS가 몇 비트 인지 알아오는 방법에는 2가지가 있습니다. 1. GetSystemInfo, GetNativeSystemInfo 함수 사용. 2. IsWow64Process 함수 사용. GetSystemInfo 부터 알아 보겠습니다. GetSystemInfo는 시스템 정보를 얻어오는 함수 입니다. 이렇게 정의 되어 있습니다. WINBASEAPI VOID WINAPI GetSystemInfo( __out LPSYSTEM_INFO lpSystemInfo ) ; 얻어오는 인자 값으론 SYSTEM_INFO 라는 구조체를 사용 합니다. typedef struct _SYSTEM_INFO {    union […]

  • ListCtrl

    ========================================== 1. 특정 ROW 포커스 주기2. 특정 ROW로 가기3. 헤더 컬럼수 얻어오기4. 컬럼의 너비를 이쁘게 주기5. 한줄 쭉 선택되게 하기, 그리드 라인 주기6. 선택한 아이템(ROW)를 지우기7. 두 아이템을 스왑 하기8. 기존에 선택되어있는 것을 해체하기 9. List Control의 0번째 컬럼 사이즈 변경하지 못 하도록 프로그래밍 10. List Control 에 다른 Control 넣기 11. List Control 행크기 […]

  • [ListCtrl] 한줄 선택 및 그리드 라인을 설정하려면

    ListCtrl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)

  • CListCtrl 정리

    1. 컬럼을 추가한다. 2. Item을 추가한다. 3. SubItem을 추가한다. 컬럼을 추가해야, 컬럼에 텍스트를 설정해 넣을 수가 있다. 컬럼 추가는 다음과 같이 한다.CListCtrl l; l.InsertColumn(0, “Control…”, LVCFMT_LEFT, 100); l.InsertColumn(1, “HI…”, LVCFMT_LEFT, 100); Item을 추가해야, sub item을 추가할 수 있게 된다. Item은 0번부터 시작을 하고, sub item은 1번부터 시작을 한다. 우선 Item은 다음과 같이 추가한다.l.InsertItem(0, “first”); l.InsertItem(1, […]