본문 바로가기

MFC

(3)
멀티미디어 타이머 이용 방법 멀티미디어 타이머 이용 방법 WM_TIMER 메시지를 이용한 방법이나 멀티미디어 타이머를 이용한 방법에서는 반복주기를 msec 단위로 지정해 줄 수가 있습니다. 그러나, WM_TIMER를 이용한 방법에서는 사실상 정확한 반복주기를 유지한다는 것이 불가능하여 수십 msec만큼의 정밀도밖에 가지지 못합니다. 반면에, 이 문서에서 설명할 멀티미디어 타이머는 최대 1msec까지 그 정밀도가 보장됩니다. 고정된 시간간격의 유지가 필수적인 애플리케이션에 유용한 방법입니다. 2-1. 타이머 생성 : timeSetEvent 함수 이용 MMRESULT timeSetEvent(UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD dwUser, UINT fuEve..
다이얼로그에 상태표시줄(Status Bar) 장착하기! - Header public: CStatusBarCtrl m_StatusBar; - CPP m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0); int strPartDim[4]= {180, 300, 300, 450 -1}; m_StatusBar.SetParts(4, strPartDim); m_StatusBar.SetText("테스트1", 0, 0); m_StatusBar.SetText("테스트2", 1, 0); m_StatusBar.SetText("아이콘", 3 ,SBT_NOBORDERS); m_StatusBar.SetIcon(3, SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME), F..
윈도우 강제(자동)종료, 재부팅, 로그오프 TOKEN_PRIVILEGES ns; HANDLE htoken; LUID LID; LUID_AND_ATTRIBUTES att; if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &htoken)) { MessageBox("Process token을 열 수 없습니다.\n"); return; } if(!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &LID)) { MessageBox("Privilege를 찾을 수 없습니다.\n"); return; } // Shutdown privilege 활성화 att.Attributes = SE_PRIVILEGE_ENABLED; att.Luid = LID; // Privi..