라라윈님으로 시작한 편견타파 릴레이예스비님이 저에게 바톤을 넘겨주었네요. IT 블로그로 전향한지 얼마 지나지 않아서 이런 글을 써야할지 고민을 했지만, 오랜만에 글을 작성해 보려고 이렇게 무턱대고 바톤을 받아버리고 말았습니다. ^^;

IT 블로그 전향 후 변화된 모습을 보게 되었다!  ☞  http://pangsan.tistory.com/140

 전 컴퓨터 수리공이 아니랍니다 !
 

대학에서 IT 관련 수업을 받고 있어서인지 주위 사람들이 컴퓨터에 문제가 생기면 어김없이 저에게 연락이 오곤 합니다. 컴퓨터를 잘 모르시는 주위분들이라서 간단한 문제도 있지만, 접해보지 못했던 생소한 문제도 있었습니다.

왠만한 컴퓨터 고장은 고칠 수 있지만, 전문 컴퓨터 수리공도 아닌 저에게 너무 많은 주문을 하는게 문제입니다. 직접 고장난 컴퓨터를 보고 진단하면서 하면 100%는 아니더라도 어느정도는 증상파악이 되어서 제가 고칠 수 있는 것은 제 선에서 해결하거나 새로운 부품을 주문하여 교체하는 작업 정도는 할 수 있습니다. 그런데 전화상으로 모든 것을 해결하려는 주위분들 때문에 너무 힘듭니다.

전문적인 컴퓨터 수리과정을 배웠던 적도 없는 저에게 너무 많은 기대를 하신다는 것 입니다. IT 관련 대학을 다니는 사람은 모두 컴퓨터 전문가로 착각하시는 분들이 너무 많다는 것 입니다. 실상은 IT 관련 대학을 다니는 사람중에도 윈도우 포맷도 못하는 사람도 있고, 컴퓨터 본체 내부가 어떻게 생겼는지 모르는 사람도 많습니다. 모두가 컴퓨터 전문가는 아니랍니다.

컴퓨터에 대해 많은 것을 아는 사람도 전화상으로 해결한다는 것은 대단히 어려운 문제입니다. 그 어려운 문제를 저에게 문의를 하시고, 해결하지 못하면 "IT 관련 공부를 하는 놈이 그것도 못고치냐?" 라는 소리를 듣는것 같은 느낌이 듭니다.

IT 관련 공부를 하는 사람이 전부 컴퓨터 전문가라는 편견은 버리셔야 합니다. 만약 전부 전문가라면 주위에서 보이는 컴퓨터 수리점이나 대리점 같은 것은 장사가 되지 않겠죠. 주위에 IT관련 일을 하는 사람에게 컴퓨터 수리를 부탁하실때는 전화상으로 모든 문제를 해결할 수 있다는 기대는 버리시기 바랍니다.

마지막으로 남기는 말...

저 또한 컴퓨터에 대해서 많은 부분을 모르고 배우고 있는 입장으로 이런 문제를 연락받으면 그 문제를 해결하기 위해 공부를 할 수밖에 없습니다. 그래서 컴퓨터 지식이 하나 둘 쌓여가는 것을 알게 되어 은근히 도움이 되는것은 사실입니다.

갑자기 한 이이갸기 떠오르는 군요.
일본에서 연수를 받고 있을때 모르는 것이 있으면 질문을 많이 했던 저였습니다. 어느날 교육을 가르치는 과장님(일본분)이 저에게 질문의 방법에 대해 이야기를 해 주었습니다.

질문의 방법이란 어떤 질문을 하기 전에 그 질문을 해결하기 위해 스스로 노력을 했지만 도저히 해결하지 못할때 하는 것이 질문의 방법이라는 것이었습니다.

지인들에게 컴퓨터 관련 질문이나 문의를 하실때에는 질문의 방법에 대해 한번 생각해보시고 스스로 고쳐보려는 노력을 해보셨으면 합니다.


바톤이 넘어온 경로 
  ● 라라윈님 : 독서릴레이 + 새 릴레이 시작, 편견타파 릴레이


  해피아름드리님 : 편견을 버리세요~~편견타파 릴레이...


  검도쉐프님 : [편견타파 릴레이] 편견을 버리면 세상이 다르게 보인다


  용짱님 : [편견타파 릴레이] 용짱은 된장남?


  생각하는 사람님 : [편견타파 릴레이]생각이 없는 생각하는사람?


  White Rain님 : [편견타파 릴레이]남자가 팩하면 별난 사람?


  코로돼지님 : [편견타파 릴레이] 고양이 키우면 유산해?


  영웅전쟁님 : 왼손잡이의 편견에서 벗어나자...[편견타파 릴레이]


  아이미슈님 : 보이는게 다가 아니다. 여자라고 어리다고 냅다 반말부터?


  leebok님 :  [편견타파릴레이]수학을인용구 잘해야 과학자가 될수 있나요?


  미국얄개님 : 편견을 가지고 세상을 바라보는 중인공은 바로 자기자신


  예스비님 : 편견타파 릴레이_ 나이는 숫자에 불과 하다면서?


 

 제 바톤을 이어 받으실 릴레이 주자를 발표합니다!


뉴규?

야이노마

» Contact Me: yainoma00@gmail.com





1. 헤더파일에 소스코드 추가
     

typedef BOOL(WINAPI *SLWA)(HWND,COLORREF,BYTE,DWORD);

2. 투명 다이얼로그 메서드 만들기
     

void CSampleDlg::SetTransparent(int percent)
{
    SLWA pSetLayeredWindowAttributes = NULL;

    HINSTANCE hmodUSER32 = LoadLibrary("USER32.DLL");
    pSetLayeredWindowAttributes =
    (SLWA)GetProcAddress(hmodUSER32,"SetLayeredWindowAttributes");

    HWND hwnd = this->m_hWnd;
    SetWindowLong(hwnd,GWL_EXSTYLE,GetWindowLong(hwnd,GWL_EXSTYLE) | WS_EX_LAYERED);
    pSetLayeredWindowAttributes(hwnd, 0, percent, LWA_ALPHA);
}
3. 투명 다이얼로그 적용하기
     

SetTransparent( 100 );
투명도를 100으로 설정한 다이얼로그 모습입니다.
투명도는 0에서 255까지 설정할 수 있습니다.



야이노마

» Contact Me: yainoma00@gmail.com





ShellExecute 사용 방법      

HINSTANCE ShellExecute(    
     HWND hwnd,
     LPCTSTR lpOperation,
     LPCTSTR lpFile,
     LPCTSTR lpParameters,
     LPCTSTR lpDirectory,
     INT nShowCmd
);

hwnd : 핸들값을 받는다. ( 보통 NULL로 지정한다. )
lpOperation : 수행할 동작을 지정한다. ( 프로그램 실행시에는 "open"을 사용한다. )
lpFile : 수행할 프로그램의 파일명을 적는다. ( 절대경로를  지정한다. )
lpParameters : 프로그램 수행시 파라메터를 지정한다.( 파라메터가 없다면 NULL로 지정한다. )
lpDirectory : 파일의 경로를 적어준다.(  lpFile에 절대경로를 적으므로 NULL로 지정한다. )
nShowCmd : 프로그램 수행시 윈도우 크기 등 지정한다.

ShellExecute 사용예제
     
// 그림판 실행
ShellExecute(NULL, "open", "C:\\WINDOWS\\system32\\mspaint.exe", NULL, NULL, SW_SHOW);
// 네이트온 실행
ShellExecute(NULL, "open", "C:/Program Files/NATEON/BIN/NATEON.exe", NULL, NULL, NULL);

야이노마

» Contact Me: yainoma00@gmail.com





1. CFileDialog 사용 방법
     
CFileDialog( BOOL bOpenFileDialog,
             LPCTSTR lpszDefExt = NULL,
             LPCTSTR lpszFileName = NULL,
             DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
             LPCTSTR lpszFilter = NULL,
             CWnd* pParentWnd = NULL );

bOpenFileDialog     TRUE면 Open dialog, FALSE면 Save as dialog
lpszDefExt              기본파일확장자로 선언이 되면 해당하는 확장자를 가진 파일만 나온다.
lpszFileName         파일명 에디트 박스에 초기화될 파일명
dwFlags                  dialog box 기본 FLAG, m_ofn.Flags에 등록된다
                                OFN_NOCHANGEDIR             디렉토리변경불가
                                OFN_HIDEREADONLY            읽기전용파일은 숨김
                                OFN_OVERWRITEPROMPT   존재하는 파일 덮어쓰기전에 확인하기
                                OFN_FILEMUSTEXIST           반드시 존재하는 파일명만 입력받음
                                OFN_ALLOWMULTISELECT   다중선택가능
                                OFN_ENABLESIZING             파일열기 대화상자의 크기 조절가능
dwFlags(*1)          
lpszFilter                연속된 문자열쌍으로 파일 확장자를 원하는 타입으로 나오게 할수 있다
pParentWnd            다이얼로그 소유 윈도우 포인터

2. CFileDialog 사용예
     

    char *szFilter = "비트맵(*.bmp)|*.bmp|JPEG(*.jpg)|*.jpg||";
    CFileDialog imageSave( FALSE, NULL, m_SaveTab.GetFileName(), OFN_FILEMUSTEXIST, szFilter, NULL );
   
    // 확장자 BMP = 0, JPG = 1
    int nSelected = 1;   
    TCHAR* szExtension[2] = { ".bmp", ".jpg" };

    imageSave.m_ofn.nFilterIndex = (DWORD)nSelected;
    if( imageSave.DoModal() == IDOK ) {
        CString strFileName = imageSave.GetFileName();
        CString strFileExt = imageSave.GetFileExt();
       
        // 콤보상자에서 확장자를 선택했을 시
        if( strFileExt == "" ) {   
            // 선택된 파일 확장자의 인덱스를 가져온다.
            nSelected = (int)imageSave.m_ofn.nFilterIndex;
            // 인덱스에 맞는 확장자를 FileName에 붙인다.
            strFileName += szExtension[nSelected-1];   
        }

야이노마

» Contact Me: yainoma00@gmail.com





다이얼로그의 BOrder 속성을 None으로 설정하면 타이틀바가 제거된 다이얼로그를 만들 수 있습니다. 다이얼로그는 타이틀바를 마우스 좌클릭으로 드레그 해야하는데 타이틀 바가 없으니 이동이 불가능합니다. 이때 다이얼로그 영역을 좌클릭해서 드레그 할 수 있게 구현해 보겠습니다.

1. WM_LBUTTONDOWN 메시지 추가
     

왼쪽 마우스를 누른상태에서 드레그를 하기 위해 WM_LBUTTONDOWN 메시지를 추가합니다.

2. 좌클릭시 발생하는 메시지를 보내는 소스코드 추가
     

void XXXX::OnLButtonDown(UINT nFlags, CPoint point)
{
    // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
    SendMessage( WM_NCLBUTTONDOWN, HTCAPTION, 0 );

    CDialog::OnLButtonDown(nFlags, point);
}
SendMessage( WM_NCLBUTTONDOWN, HTCAPTION, 0 ); 왼쪽 마우스를 클릭했을 시 타이틀바 부분을 클릭한 것처럼 인식하게 만든다.

야이노마

» Contact Me: yainoma00@gmail.com