본문 바로가기

Welcome My World

[MFC] 다른이름으로 저장하기 창 생성 void CUserClass::Save(void) { static char BASED_CODE szFilter[] = "한글 Files (*.hwp)|*.hwp||"; CFileDialog dlg (FALSE, "*.hwp", "*.hwp", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter); if (dlg.DoModal () == IDOK) { } } 더보기
외부 프로그램 실행 방법 SHELLEXECUTEINFO sei; memset(&sei, 0, sizeof(sei)); sei.cbSize = sizeof(sei); sei.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_DDEWAIT; sei.lpFile = "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE"; sei.hwnd = NULL; sei.lpVerb = "open"; sei.nShow = SW_SHOWMINIMIZED; ShellExecuteEx(&sei); 더보기
MFC MDI에서 Child Window를 최대화로 시작하기 virtual void ActivateFrame(int nCmdShow) { // if another window is open, use default if(GetMDIFrame()->MDIGetActive()) CMDIChildWnd::ActivateFrame(nCmdShow); else // else open maximized. CMDIChildWnd::ActivateFrame(SW_SHOWMAXIMIZED); } 더보기
Thead를 이용한 암호화 / 복호화 더보기
일의 자리에서 반올림 , 올림 , 버림 (1) 일의자리에서 버림 버림: 123 일때 120 , 128 에서도 120 , .... 123 을 10 으로 나눈 몫은 12 이고 나머지는 3 123 / 10 --> 12 123 % 10 --> 3 123 - 123%10 을 하면 120 이 나옵니다. 다른 방법으로 123 을 10 으로 나눈 몫이 12 .. 123 / 10 여기에 10 을 곱하면 120 .. 123 / 10 * 10 참고로 이 성질을 이용하면 123 % 10 은 123 - 123/10*10 과 같은 표현입니다. (2) 일의 자리에서 반올림 반올림:123 에서 120 , 125 에서는 130 , 128 에서 130 수의 일의 자리에 5 를 더하면 5 이상의 수는 십이 자리로 올라가고 5 보다 작은 수는 올라가지 않습니다. (123 + 5.. 더보기
int main(void)는 이제 그만! 출처 : http://mwultong.blogspot.com/2006/12/c-argc-argv-main-function-parameter.html 각 함수에는 인수(파라미터)를 지정할 수 있습니다. 프로그램 본체인 main() 함수에도 당연히 인수를 지정할 수 있습니다. 메인 함수의 인수는, 운영체제에서 그 프로그램을 실행할 때 지정해 준 "옵션"입니다. 예를 들어 도스창(명령 프롬프트;CMD.EXE)에서 dir /? 이렇게 하면 dir 명령에 대한 도움말이 출력됩니다. 이때 "/?" 라는 문자열이 옵션이 되는 것입니다. main(int argc, char* argv[]) 에서 argc 는, 프로그램을 실행할 때 지정해 준 "명령행 옵션"의 "개수"가 저장되는 곳입니다. argv 는, 프로그램을 실행할.. 더보기
OpenGL을 이용한 Picking 성공 일단 방금 기능구현이 막 끝난 참이라 부가기능 구현도 안되어있고 여러가지 자잘한 버그도 수정이 안되어있다. 게임 실행창을 닫아서 메인 창으로 갔다가, 다시 게임 실행창을 켰을때 화면이 검게 나오는 이유는, ARToolKit에서 제공해주는 프레임을 얻어오는 함수를 거치면서 화면이 검게되는것을 확인하였다. 어디서부터 손을 대야할지 막막하다-_-a 이걸 어떻게 고치지....ㅠ 더보기
증강현실을 MFC로 이식 성공 무한 삽질 끝에 AR을 우리 소스에 이식하는데 성공하였다. 하지만 불안사항이 있다. 일시 정지 버튼을 누르면 불규칙적인 확률로 다운되는 현상이 있고, AR을 합치고나서부터 게임 시작을 했다가, 창을 닫고 다시 시작을 누르면 검은 화면이 나온다. 랭킹 구현도 다 했고... 이제 OpenGL을 사용해서 Picking하는 작업이 남았는데 제일 만만찮은 작업이 될것 같다. ARToolKit 관련 소스들도 클래스화 시켜야 되고... 그런데 ARToolKit 정말 너무 까다롭다-_- 다시는 증강현실에 발을 들여놓기가 싫다. 설정하다가 진땀 다 뺄듯 더보기
MFC Dialog 꽉찬 화면 BOOL PlayGameForm::OnInitDialog() { CDialog::OnInitDialog(); HWND m_hwnd = this->m_hWnd; LONG style = ::GetWindowLong( m_hWnd, GWL_STYLE ); style &= ~WS_CAPTION; style &= ~WS_SYSMENU; ::SetWindowLong( m_hWnd, GWL_STYLE, style ); int screenx = GetSystemMetrics( SM_CXSCREEN ); int screeny = GetSystemMetrics( SM_CYSCREEN ); // resize: SetWindowPos( NULL, -4, -4, screenx+8, screeny+4, SWP_NOZORDER ).. 더보기
MFC Dialog 에서 Enter 와 ESC Key 종료 방지 BOOL PlayGameForm::PreTranslateMessage(MSG* pMsg) { if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE) { return TRUE; } return CDialog::PreTranslateMessage(pMsg); } 더보기