<Űº¸µå·Î ¸¶¿ì½º Ä¿¼ ¿òÁ÷À̱â>
Á¦¸ñ ±×´ë·Î Űº¸µå·Î ¸¶¿ì½º Ä¿¼¸¦ ¿òÁ÷ÀÌ´Â ÄÚµåÀÔ´Ï´Ù. CView¿¡¼ OnKeyDown ÇÔ¼ö¸¦ ´ÙÀ½°ú °°ÀÌ °íÄ¡¸é µË´Ï´Ù.
void CCGhostView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler
code here and/or call default
CPoint ptCurPos; //
ÇöÀç Ä¿¼ÀÇ À§Ä¡
if(::GetCursorPos(&ptCurPos))
{ // ÇöÀç Ä¿¼ À§Ä¡¸¦ ¾ò´Â´Ù. (½ºÅ©¸° ÁÂÇ¥)
switch(nChar)
{ // ۰ª(nChar)¿¡ µû¶ó »õ·Î¿î Ä¿¼ À§Ä¡ ¼³Á¤
case
VK_LEFT :
ptCurPos.x
-= 30;
::SetCursorPos(ptCurPos.x,
ptCurPos.y);
break;
case
VK_RIGHT :
ptCurPos.x
+= 30;
::SetCursorPos(ptCurPos.x,
ptCurPos.y);
break;
case
VK_UP :
ptCurPos.y
-= 30;
::SetCursorPos(ptCurPos.x,
ptCurPos.y);
break;
case
VK_DOWN :
ptCurPos.y
+= 30;
::SetCursorPos(ptCurPos.x,
ptCurPos.y);
break;
}
}
CView::OnKeyDown(nChar, nRepCnt,
nFlags);
}
¾Æ¹« ÆÄÀÏÀ̳ª, ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» ´·¯ µî·ÏÁ¤º¸¸¦ ½ÇÇàÇÏ¸é ³ª¿À´Â µî·ÏÁ¤º¸ âÀÖÁÒ? ¹Ù·Î ÀÌ°É µ¿ÀÛÇÏ°Ô ÇØÁÖ´Â ·çƾÀÔ´Ï´Ù. ´ÙÀ½Àº µî·ÏÁ¤º¸¸¦ Ãâ·ÂÇØÁÖ´Â ¼Ò½ºÀÔ´Ï´Ù.
void ShowFileInfo( String FileName )
{
SHELLEXECUTEINFO ExecInfo;
memset( &ExecInfo, 0, sizeof(SHELLEXECUTEINFO)
);
ExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ExecInfo.hwnd = Handle;
ExecInfo.lpFile = FileName.c_str();
ExecInfo.lpVerb = "properties";
ExecInfo.fMask = SEE_MASK_INVOKEIDLIST;
ShellExecuteEx( &ExecInfo );
}
<ÀÛ¾÷Ç¥½ÃÁÙ¿¡¼ ÇÁ·Î±×·¥ ¼û±â±â>
´ÙÀ½Àº ÇÁ·Î±×·¥À» ÀÛ¾÷Ç¥½ÃÁÙ¿¡¼ ¼û±â´Â ¹æ¹ýÀÔ´Ï´Ù.
ShowWindow( Application.Handle, SW_HIDE );
ExitWindowsEx(EWX_FORCE, 0); //
°Á¦ Á¾·á
ExitWindowsEx(EWX_LOGOFF, 0); // ·Î±×
¿ÀÇÁ
ExitWindowsEx(EWX_POWEROFF,0); // ¼Ë´Ù¿îÈÄ ½Ã½ºÅÛ
²ô±â
ExitWindowsEx(EWX_REBOOT, 0); // ÀçºÎÆÃ
ExitWindowsEx(EWX_SHUTDOWN,0); // ¼Ë´Ù¿î
<¹öưÀ¸·Î ÇØ´ç À©µµ¿ì Á¾·áÇϱâ>
Visual C++ recodeview ȸ鿡¼ ¹öưÀ¸·Î ÇØ´ç ȸéÀ» Á¾·áÇϰíÀÚ ÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ ±¸ÇöÇÏ¸é µÇ¿ä.
/*******************************************************/
/* ClassWizard·Î CTestApp Ŭ·¡½º¿¡¼ ID_APP_EXIT·Î */
/* COMMAND Message¸¦ ¸¸µé°í °Å±â¿¡ ¾Æ·¡¿Í °°ÀÌ ±â¼ú */
/*******************************************************/
void CInfoApp::OnAppExit()
{
m_pMainWnd->SendMessage(WM_CLOSE);
}
/****************************************************/
/* Á¾·á ¹öưÀÇ À̺¥Æ®¿¡ ´ÙÀ½°ú °°ÀÌ ±â¼ú */
/****************************************************/
void CTestView::OnExit()
{
CTestApp *App = (CTestApp*)AfxGetApp();
App->OnAppExit();
}
ÀÌ°Ç PreTranslateMessage(MSG* pMsg) ¸¦ ÀÌ¿ëÇÏ¸é µË´Ï´Ù.
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
if( (pMsg->message == WM_KEYDOWN)
&& (pMsg->wParam == 13) &&
(pMsg->hwnd ==
::GetDlgItem(GetSafeHwnd(),IDC_LIST_BOX)) )
//
±×¸®°í ³ª¼ ¿©±â ¾Æ·¡ÁÙ¿¡ ½ÇÇà½Ãų ÇÔ¼ö¸íÀ» Àû¾îÁÖ¸é µË´Ï´Ù.
//
¿¹À»µé¾î SetData();¶ó¸é..
SetData();
}
void CTestDlg::SetData()
{
/// ¸®½ºÆ®¹Ú½ºÀÇ ¼±ÅÃµÈ ¾ÆÀÌÅÛ°¡Áö°í Á¶ÀÛÇÏ´Â ÇÔ¼ö
/// »ç¿ëÀÚ°¡ ¸¸µé¾î¾ß °ÚÁö¿ä.
}
´Ù¸¥ ÄÁÆ®·Ñµéµµ ÀÌ·±½ÄÀ¸·Î ÇÏ½Ã¸é µË´Ï´Ù
´ÙÀ½ÀÇ µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ÆíÇÑ´ë·Î ¼±ÅÃÇÏ¸é µË´Ï´Ù. È¿°ú´Â °°½À´Ï´Ù.
1. PreCreateWindowÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù..
BOOL CTestView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here
by modifying
// the CREATESTRUCT cs
cs.lpszClass = AfxRegisterWndClass(CS_VREDRAW
| CS_HREDRAW,
LoadCursor(NULL,
IDC_ARROW),
(HBRUSH)GetStockObject(BLACK_BRUSH),
LoadIcon(NULL,
IDI_APPLICATION));
return CView::PreCreateWindow(cs);
}
2. WM_ERASEBKGND ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù..
BOOL CTestView::OnEraseBkgnd(CDC* pDC)
{
CBrush backBrush(RGB(255, 255, 255)); // <-
Èò»öÄ®·¯·Î.
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect; pDC->GetClipBox(&rect);
pDC->PatBlt(rect.left, rect.top, rect.Width(),
rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);
return TRUE;
}
¾Æ½±°Ôµµ CDC::DrawBitmapÀ̶õ ÇÔ¼ö´Â ¾ø½À´Ï´Ù. ºñÆ®¸Ê ÀÚ¿øÀ» Ãâ·ÂÇÏ·Á¸é ºñÆ®¸ÊÀ» ÀоîµéÀ̰í, Ãâ·Â ÀåÄ¡¿Í ȣȯµÇ´Â ¸Þ¸ð¸® ÀåÄ¡ ÄÁÅØ½ºÆ®¸¦ »ý¼ºÇØ¾ß ÇÕ´Ï´Ù. ±×·± ´ÙÀ½ ºñÆ®¸ÊÀ» ÀåÄ¡ ÄÁÅØ½ºÆ®·Î ¼±ÅÃÇϰí, ÀåÄ¡ ÄÁÅØ½ºÆ®¸¦ Ãâ·Â ÀåÄ¡·Î Àü¼ÛÇÕ´Ï´Ù. ±×·¯¸é ÁÂÃø »ó´Ü ±¸¼®¿¡ ºñÆ®¸ÊÀ» ¿Ã·Á³õÀ» ¼ö ÀÖ½À´Ï´Ù.
void CSample::OnPaint(){
CPaintDC dc(this); // Ãâ·Â¿¡ ÇÊ¿äÇÑ ÀåÄ¡ ÄÁÅØ½ºÆ®
CDC dcMem;
//ºñÆ®¸Ê ÀÚ¿øÀ» Àд´Ù.
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP)
//Ãâ·Â ÀåÄ¡¿Í ȣȯµÇ´Â ¸Þ¸ð¸® ÀåÄ¡ ÄÁÅØ½ºÆ®¸¦
»ý¼ºÇÑ´Ù.
dcMem.CreateCompatibleDC(&dc)
//ºñÆ®¸ÊÀ» ¸Þ¸ð¸® ÀåÄ¡ ÄÁÅØ½ºÆ®·Î ¼±ÅÃÇÑ´Ù.
CBitmap* pOldBitmap = dcMem.SelectObject(&stBitmap)
//ºñÆ®¸ÊÀÇ Å©±â¸¦ ±¸ÇÑ´Ù.
BITMAP stBitmap;
bitmap.GetObject(sizeof(BITMAP), &stBitmap);
//Ãâ·Â ÀåÄ¡¿¡ ºñÆ®¸ÊÀ» ±×¸°´Ù.
dc.BitBlt(0, 0, stBitmap.bwWidth stBitmap.bmHeight,
&dcMem, 0, 0, SRCCOPY);
//¸Þ¸ð¸® ÀåÄ¡ ÄÁÅØ½ºÆ®ºÎÅÍ ÄÁÅØ½ºÆ®·ÎºÎÅÍ ºñÆ®¸ÊÀ»
²¨³½´Ù.
}
< ´ÙÀ̾ó·Î±× ¸®¼Ò½º´ë·Î Æûºä Å©±â ¼³Á¤Çϱâ>
OnInitialUpdate ¸â¹ö ÇÔ¼ö¿¡ ´ÙÀ½ µÎ ¶óÀÎÀ» ÷°¡ÇÑ´Ù.
ResizeParentToFit(FALSE);
ResizeParentToFit();
ResizeParentToFit() ÇÔ¼ö¸¦ µÎ ¹ø È£ÃâÇÏ¿´´Âµ¥, ù ¹øÂ° È£ÃâÀº ºä°¡ È®ÀåµÇµµ·Ï ÇϱâÀ§ÇÑ °ÍÀ̸ç, µÎ ¹øÂ° È£ÃâÀº ºäÀÇ Å©±â°¡ ´ÙÀ̾ó·Î±× ¸®¼Ò½º¿¡ ¸Â°Ô Ãà¼ÒµÇµµ·Ï Çϱâ À§ÇÑ °ÍÀÌ´Ù.
< CD, Ç÷ÎÇǵîÀÇ µð½ºÅ© »ðÀÔ ÀÚµ¿ ÆÇ´Ü·çƾ>
À©µµ¿ìÁî Ä¿¸Ç´õ³ª, Ž»ö±âµîÀ» »ç¿ëÇÏ´Ùº¸¸é µð½ºÅ©¸¦ ³Ö°Å³ª »°À» ¶§, ÀÌ°É °¨ÁöÇϰí ÀÚµ¿À¸·Î ÀڷḦ °»½ÅÇØÁÖÁÒ?
º¸Åë ÇÁ·Î±×·¥ ÀÚüÀûÀ¸·Î ŸÀ̸Ӹ¦ µ¹·Á¼ °¨ÁöÇÏ´Â ¼öµµ ÀÖ°ÚÁö¸¸, À©µµ¿ìÁî Ä¿¸Ç´õó·³ ÇÁ·Î±×·¥ÀÌ È°¼ºÈµÉ¶§¸¸ °¨ÁöÇϵµ·Ï ÇÏ´Â ÆíÀÌ ÁÁÀ» °Í °°³×¿ä. ^^
´ÙÀ½Àº µð½ºÅ©°¡ ÀÖ´ÂÁö À¯¹«¸¦ ÆÇ´ÜÇÏ´Â ·çƾÀÔ´Ï´Ù. À̸¦ ÀÌ¿ëÇØ¼ ÀÌÀü¿¡ µð½ºÅ©°¡ ÀÖ¾ú´Âµ¥, °Ë»ç°á°ú ¾ø¾ú´Ù¸é µð½ºÅ©¸¦ »©³½°ÍÀ̰í, ±×¿Í ¹Ý´ë·Î ¾ø¾ú´Ù°¡ °Ë»ç°á°ú ÀÖ´Ù¸é »ðÀÔÇÑ °ÍÀ̰ÚÁö¿ä.
< ÇÔ¼ö ¼³¸í >
DriveIndex : °Ë»çÇϰíÀÚ ÇÏ´Â µå¶óÀÌºê ¹øÈ£ÀÔ´Ï´Ù.
Aµå¶óÀ̺ê´Â
0, Bµå¶óÀ̺ê´Â 1, Cµå¶óÀ̺ê´Â 2.. ¼øÀÔ´Ï´Ù.
¹Ýȯ°ªÀº µð½ºÅ©°¡ ÀÖÀ¸¸é true, ¾øÀ¸¸é false¸¦ ¹ÝȯÇÕ´Ï´Ù.
bool CheckDriveNotify( int DriveIndex )
{
char *DriveName = "X:\\";
DriveName[0] = 'A' + DriveIndex;
return SetCurrentDir( DriveName );
}