다얼~로그를 사용하면서 메모리 관리가 좀 ..힘들다! 어찌할까? class CMainFrame : public CMDIFrameWnd { ... private: CProcessSetting *m_dlg; CIPSetting *m_IPDlg; } // 생성자에 // ------------------------------------------------------- // Setting Dlg 동적생성 // ------------------------------------------------------- m_dlg = new CProcessSetting(); m_dlg->Create(IDD_SETTING,this); // ------------------------------------------------..
다이얼로그가 생성될 때 발생되는 메세지의 순서로는 DoModal() PreSubclassWindow() OnNcCreate() OnNcCalcSize() OnCreate() OnSize() OnMove() OnSetFont() OnInitDialog() OnWindowPosChanging() OnMove() OnWindowPosChanged() OnWindowPosChanging() OnNcActivate() OnActivate() OnShowWindow() OnWindowPosChanging() OnNcPaint() OnEraseBkgnd() OnChildNotify() OnCtlColor() OnWindowPosChanged() OnPaint() OnCtlColor() OnCtlColor() OnNc..
비주얼 스튜디오를 사용하면서 유니코드에 부딪히게 된다... 그에 따른 매크로 함수가 있다! 왜 지금알았는가? ㅜ_ㅜ....젠장~ T2A, A2T 매크로 함수가 있다 열심히 사용해보자^^!! 추가해야되는 해더파일 : atlbase.h TCHAR buffer[100]; char * char_buffer = T2A(buffer); #include // Unicode to Ansi USES_CONVERSION; CStringA strTemp; strTemp = T2A( (TCHAR*)str ); // Ansi to Unicode USES_CONVERSION; CString strTemp; strTemp = A2T( (char*)str ); 이렇게 사용을 하면~^________________^a 된다! 후훗.
일반적으로 DirectX를 이용한 게임 애플리케이션 개발은 VC++에서 Win32로 개발한다. 그런데 Rhea君과 Rhea君 주위의 모임에는 게임 코드에 MFC를 많이 사용한다. Win32로 개발하더라도 MFC를 사용하는 것은 아주 쉽다. 1) 우선 stdafx.h 에 #include #include 이 두 헤더파일을 추가한다. 사실 afx.h 만 있어도 되지만 AfxMessageBox()같은 함수를 사용하기 위해서는 afxwin.h 을 추가해주자. (실제 최종 아웃풋에 사용되지 않더라도 개발시 많은 도움을 준다.) 중요한 것은 MFC 헤더 파일들이 반드시 기존 #include 보다 먼저 선언 되어야 한다는 점이다. 이 순서가 틀리면 afxv_w32.h 의 #ifdef _WINDOWS_ #error WI..
음~ 간혹 과제를 하다가 ... 그러나 혹은 소스를 수업제출을 할수 없을 때 - 공개할수 없는 cpp, h 파일들을 숨겨서 주는 방법이 없을까?- 남이 공부한걸 그렇게 빼가다니 좋지 못한거 아닌가? 과제니깐 제출해야지?? 왜?? 왜줘야하는데? 그렇게 자료를 모아두고 싶은건가? ... 이제 그 방법을 말로 알아보자! 먼저 현재 완성된 프로젝트가 있을 것이다. 거기의 모든 cpp, h 파일을 복사한다.( 붙일 곳은 라이브러리를 생성하기위한 프로젝트로 복사) 이전에 MFC - 일 경우에는 API쪽란에 Win32 기본 프로젝트로 생성을 한다. 이때 MFC 동적 라이브러리 추가 를 선택하고 프로젝트를 생성해야만 한다. API 일 경우에는 단순히 Win32 쪽에서 기본으로 프로젝트를 만들면 된다. 그리고'ㅅ'! 이..
/* Copyright (C) Scott Bilas, 2000. * All rights reserved worldwide. * * This software is provided "as is" without express or implied * warranties. You may freely copy and compile this source into * applications you distribute provided that the copyright text * below is included in the resulting source code, for example: * "Portions Copyright (C) Scott Bilas, 2000" */ #include template class Sin..
// char 을 WCHAR 로 변경하는 내용 void CMSGProcess::ProcessMultiPos( DATAPACKET *pGetpacket, int index ) { ST_MULTIPOS *UserTouch = (ST_MULTIPOS*)pGetpacket; char TraceString[100]; WCHAR wTraceString[100]; memset( &TraceString, 0, sizeof(TraceString)); memset( &wTraceString, 0, sizeof(wTraceString)); for( int i=0; idata[i].Number, UserTouch->data[i].point.x, UserTouch->data[i].point.y, UserTouch->data[i..
http://blog.naver.com/hoi_yeon?Redirect=Log&logNo=10020732860 http://www.winapi.co.kr
URL : http://simple21.egloos.com/3482925 이번시간에는 OutputDebugString, TRACE에 대해서 알아보자. 이는 둘 다 Output 창의 Debug Tab에 디버깅 결과 값들을 표시하는 함수이다. 이는 원도우 프로그램에서 디버깅을 위해 편리하게 이용할 수 있다. 1.OutputDebugString() 이 함수는 디버깅 중에 Debug 창에 문자열을 표시하는 함수이다. 이후에 설명할 TRACE 유사(TRACE는 Debug모드에서만 동작, 하지만 이는 Release 모드에서 디버깅(다음에 설명) 중에도 문자열을 표시함) - 만일 위의 Debug 창이 보이지 않으면 "[MENU]View/Output"을 선택 2.TRACE() - OutputDebugString()과 ..
void lounchIE() { HWND h=FindWindowEx(NULL,NULL,NULL, "Microsoft Internet Explorer") ; ShellExecute(h,"open","C:\\simple.html", NULL,NULL,SW_SHOWNORMAL); } void CloseIE() { int app=BSM_APPLICATIONS; unsigned long bsm_app=(unsigned long )app; BroadcastSystemMessage(BSF_POSTMESSAGE,&bsm_app, WM_CLOSE,NULL,NULL); }
소스는 정말 간단하다.... 두줄만 추가하면된다. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CMDIFrameWnd::PreCreateWindow(cs) ) return FALSE; cs.cx = 640; cs.cy = 580; // TODO: CREATESTRUCT cs를 수정하여 여기에서 // Window 클래스 또는 스타일을 수정합니다. return TRUE; } 그럼 정의를 찾아보자. typedef struct tagCREATESTRUCT { LPVOID lpCreateParams; HANDLE hInstance; HMENU hMenu; HWND hwndParent; int cy; int cx; int y; int x; LONG styl..
// CString -> wchar_t * -_-;;;;; 이상함..;; CStringW aaa(_T("hello!")); wchar_t *a = (wchar_t *)aaa.GetBuffer(); MessageBoxW(NULL, a, a, 0); //이것도.... 되긴되는데..;;;; wchar_t wTemp[1024] = L"\0"; MultiByteToWideChar(CP_ACP, 0, m_szNotice,m_szNotice.GetLength(),wTemp,1024); // wchar_t * -> CString 변환 wchar_t *aaa = L"Hello, World!"; CString temp(aaa); m_szText = temp;