ĵ¹ö½º À©µµ¿ì¿¡µµ ÆË¾÷ ¸Þ´º¸¦ ´Þ¾Æ º¸ÀÚ. ¸ÞÀÎ ¸Þ´º¿¡µµ ÆíÁý ¸í·ÉÀÌ ÀÖ±â´Â ÇÏÁö¸¸ ÆË¾÷Àº ¸¶¿ì½ºÀÇ À̵¿ °Å¸®°¡ ª°í ÆíÁý ´ë»ó¿¡ ´ëÇØ Á÷Á¢ »ç¿ëÇÒ ¼ö ÀÖ¾î Æí¸®ÇÏ¸ç ¶ÇÇÑ Äµ¹ö½ºÀÇ µ¶¸³¼ºÀ» ³ô¿© Áֱ⵵ ÇÑ´Ù. ¸®¼Ò½º¿¡ ¸Þ´º´Â ÀÌ¹Ì ÀÛ¼ºµÇ¾î ÀÖÀ¸¹Ç·Î ¸Þ´º¸¦ Ãâ·ÂÇÏ´Â Äڵ常 ÀÛ¼ºÇÏ¸é µÈ´Ù.
LRESULT OnContextMenu(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
HMENU hMenu, hPopup;
int TempSel;
POINT pt;
pt.x=LOWORD(lParam);
pt.y=HIWORD(lParam);
ScreenToClient(hWnd,&pt);
TempSel=FindObject(pt.x,pt.y);
if (NowSel != TempSel) {
NowSel=TempSel;
InvalidateRect(hWnd,NULL,TRUE);
UpdateWindow(hWnd);
}
hMenu=LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_POPUP));
hPopup=GetSubMenu(hMenu, 0);
if (NowSel == -1) {
EnableMenuItem(hPopup, IDM_POPUP_DELETE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(hPopup, IDM_POPUP_PROPERTY, MF_BYCOMMAND | MF_GRAYED);
}
TrackPopupMenu(hPopup, TPM_LEFTALIGN, LOWORD(lParam), HIWORD(lParam),
0, hWnd, NULL);
DestroyMenu(hMenu);
return 0;
}
IDR_POPUPÀÇ Ã¹ ¹øÂ° ÆË¾÷ ¸Þ´º¸¦ Àоî¿Í TrackPopupMenu ÇÔ¼ö·Î Ãâ·ÂÇß´Ù. ¸Þ´º¸¦ Ç¥½ÃÇϱâ Àü¿¡ Ŭ¸¯ÇÑ °÷ÀÇ µµÇüÀ» °ð¹Ù·Î ÆíÁýÇÒ ¼ö ÀÖµµ·Ï ¼±ÅÃÇÏ°í ¼±Åà »óÅ¿¡ µû¶ó »èÁ¦, ¼Ó¼º Ç׸ñÀÇ »óŸ¦ º¯°æÇÑ´Ù. ¼±ÅÃµÈ µµÇüÀÌ ¾øÀ¸¸é »èÁ¦, ¼Ó¼º ¸í·Éµµ »ç¿ëÇÒ ¼ö ¾ø´Ù. ÆË¾÷ ¸Þ´º Ç׸ñÀÇ ¸í·É 󸮴 ÀÌ¹Ì WM_COMMAND¿¡ ÀÛ¼ºÇØ µÎ¾ú´Ù.