2010년 11월 16일 화요일

TSVNCache CPU 점유 해결

SVN을 사용하게 되면 TSVNCache 프로세스가 실행되면서 CPU 점유를 40% 이상 사용하게 되여 PC를 사용하기 힘든 상황이 된다.

 

이때 CPU 사용량을 줄이기 위해 TortoiseSVN Settings을 변경하면 된다.

 

: TortoiseSVN 1.6.11

 

1. Settings 선택

 

2. DLG 실행

 

 

2. Icon Overlays 선택

 아래에

Exclude paths :

Include paths :

부분에 포함 하지 않아야 하는 항목 또는 포함되어야 하는 항목 입력

 ex)

 C:\* - C드라이브 전부

 C:\Windows\* - C드라이브 아래 Windows 아래 전부

 

3. 적용 및 확인을 선택하면

프로세스 사용량이 줄어든 것을 볼수 있다..

 

- 끝 -

 

2010년 8월 25일 수요일

VNC 접속 설정

 

외부에서 VNC 접속을 설정

 

파일 복사

CFile file, wrFile;
 CFileException ex;

 /// 원본 파일을 찾을수 없다.
 if(!file.Open(strLocation, CFile::modeRead | CFile::shareDenyWrite, &ex) )
 {
  AfxMessageBox(_T("파일을 열수 없습니다. ") );
  return FALSE;
 }
 else
 {
  CFileStatus fileStatus;
  CFile::GetStatus(strcpyLocation, fileStatus);
  /// 새로 생성할 파일의 생성 또는 write 할수 없다.
  if(!wrFile.Open(strcpyLocation, CFile::modeCreate|CFile::modeReadWrite|CFile::shareExclusive, &ex))
  {
   TCHAR szError[1024];
   ex.GetErrorMessage(szError, 1024);
   file.Close();
   return FALSE;
  }
  else
  {
   /// 파일에 읽고 쓴다.
   BYTE buffer[4096];
   DWORD dwRead;
   do{
    memset(buffer, ' ', 4096);
    dwRead = file.Read(buffer, 4096);
    wrFile.Write(buffer, dwRead);
   }
   while(dwRead > 0);
  }
 }

2010년 6월 25일 금요일

Control 배경 삭제

Control 의 배경을 투명하게 보이기 위해서는 BkMode의 TRANSPARENT를 사용하여야 한다.

 

사용 하는 방법

 

OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
          HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

          CWnd *pWndTemp;
          pWndTemp = GetDlgItem(IDC_STATIC_ID);

          if(pWnd == pWndTemp)
          {
                 /// 배경 투명으로 변경
                 pDC->SetBkMode(TRANSPARENT);
                return hbr = (HBRUSH)GetStockObject( NULL_BRUSH );
          }

          return hbr;
}

 

초기 생성할때 실행되며 원하는 Control의 CWnd를 얻어 사용

출처 : Tong - 공원님의 ┣ ★ 먹고사는일(VC++)통

프로그램에서 Process 실행하기(exe)

프로그램 실행

CreateProcess(NULL, (LPSTR)"프로세스 경로명"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)

출처 : Tong - 공원님의 ┣ ★ 먹고사는일(VC++)통

여러 ToolBar 를 하나의 ControlBar에 붙이기

Frame 에서 DockControlBar(CControlBar* pBar, CControlBar* pBarBase /* = NULL */) 를 상속받아 사용

 

void CControllerFrame::DockControlBar(CControlBar* pBar, CControlBar* pBarBase /* = NULL */)
{
 if (pBarBase != NULL)
 {
  CRect rcBase;
  DWORD dwStyleBase;
  UINT nDockBarID;

  RecalcLayout();

  pBarBase->GetWindowRect(rcBase);
  rcBase.OffsetRect(1,1);

  dwStyleBase = pBarBase->GetBarStyle();
  if  (dwStyleBase & CBRS_ALIGN_TOP)  nDockBarID = AFX_IDW_DOCKBAR_TOP;
  else if (dwStyleBase & CBRS_ALIGN_BOTTOM) nDockBarID = AFX_IDW_DOCKBAR_BOTTOM;
  else if (dwStyleBase & CBRS_ALIGN_LEFT)  nDockBarID = AFX_IDW_DOCKBAR_LEFT;
  else if (dwStyleBase & CBRS_ALIGN_RIGHT) nDockBarID = AFX_IDW_DOCKBAR_RIGHT;
  else          nDockBarID = 0;

  /// MDI 일때

  CMDIChildWnd::DockControlBar(pBar, nDockBarID, &rcBase);

  /// SDI일때

 /// CFrameWnd::DockControlBar(pBar, nDockBarID, &rcBase);
 }
 else

 {

 /// MID 일때
  CMDIChildWnd::DockControlBar(pBar);

 /// SDI 일때

  CFrameWnd::DockControlBar(pBar);

 }

}

 

Frame 에서 Toolbar를 생성하는 부분에 초기 생성되는 Bar를 넣고 그 위에 추가로 생성되는 Bar를 입력

 

OnCreate(LPCREATESTRUCT lpCreateStruct)

{

  .....

 /// pBarBase 가 NULL 이기 때문에 상위 Class 인 DockControlBar 호출
 DockControlBar(&m_wndToolBar);

 /// 재정의한 함수 적용후 호출

 DockControlBar( &m_wndEventToolBar, &m_wndToolBar);

.....

}


출처 : Tong - 공원님의 ┣ ★ 먹고사는일(VC++)통

창 움직이기

 

OnNcHitTest를 재사용 하면 된다


UINT CMemoMinDlg::OnNcHitTest(CPoint point)
{
 return HTCAPTION;
}

출처 : Tong - 공원님의 ┣ ★ 먹고사는일(VC++)통