³ª. Æ˾÷ ¸Þ´º

¼±Åÿµ¿ªÀ» ¸¸µé¾úÀ¸¸é ÀÌÁ¦ »ç¿ëÇÒ ¶§´Ù. Ŭ¸³º¸µå¸¦ ÅëÇØ ¼±ÅÃÇÑ ¹®ÀÚ¿­À» º¹»çÇÏ¿© ´Ù¸¥ ÇÁ·Î±×·¥¿¡°Ô ÁÙ ¼öµµ ÀÖ°í ¹®¼­ÀÇ ´Ù¸¥ ºÎºÐÀ¸·Î ºÙ¿©³Ö±â¸¦ ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ·± µ¿ÀÛÀ» ÇÏ·Á¸é ¸ÕÀú ¸í·ÉÀ» ³»¸± ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÇÊ¿äÇϹǷΠÆ˾÷¸Þ´º¸¦ ºÙ¿© º¸µµ·Ï ÇÏÀÚ. ¾îÂ÷ÇÇ ApiEdit°¡ ÄÁÆ®·ÑÀÌ µÇ·Á¸é ÀÚü Æ˾÷¸Þ´º¸¦ °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. Æ˾÷¸Þ´º¿¡´Â ´ÙÀ½ 4°³ÀÇ ¸í·ÉÀÌ µé¾î°¥ °ÍÀÌ´Ù.

 

#define IDM_AE_CUT 40001

#define IDM_AE_COPY 40002

#define IDM_AE_PASTE 40003

#define IDM_AE_SELALL 40004

 

¼Ò½ºÀÇ ¼±µÎ ºÎºÐ¿¡ Àû´çÈ÷ ¸Þ´ºÀÇ ID¸¦ ¼±¾ðÇϵµ·Ï ÇÏÀÚ. IDÀÇ °ªÀº ´Ù¸¥ ÇÁ·ÎÁ§Æ®¿Í Ãæµ¹µÇÁö ¾Êµµ·Ï ÃæºÐÈ÷ µÚÂÊÀÇ °ªÀ» »ç¿ëÇߴµ¥ ¸í·É ID´Â À©µµ¿ì¿¡ ´ëÇØ Áö¿ªÀûÀ̱⠶§¹®¿¡ »ç½Ç Ãæµ¹ÇÏ´õ¶óµµ º° »ó°üÀº ¾ø´Ù. Æ˾÷¸Þ´º´Â WM_CONTEXTMENU ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ Ãâ·ÂÇÏ¸é µÈ´Ù.

 

void OnContextMenu(HWND hWnd, HWND hwndContext, UINT xPos, UINT yPos)

{

     HMENU hPopup;

     POINT pt;

 

     hPopup=CreatePopupMenu();

     AppendMenu(hPopup,MF_STRING,IDM_AE_CUT,"À߶󳻱â(&T)");

     AppendMenu(hPopup,MF_STRING,IDM_AE_COPY,"º¹»ç(&C)");

     AppendMenu(hPopup,MF_STRING,IDM_AE_PASTE,"ºÙ¿©³Ö±â(&P)");

     AppendMenu(hPopup,MF_STRING,IDM_AE_SELALL,"¸ðµÎ¼±ÅÃ(&A)");

 

     if (IsClipboardFormatAvailable(CF_TEXT)==FALSE) {

          EnableMenuItem(hPopup, IDM_AE_PASTE, MF_BYCOMMAND | MF_GRAYED);

     }

 

     if (SelStart == SelEnd) {

          EnableMenuItem(hPopup, IDM_AE_CUT, MF_BYCOMMAND | MF_GRAYED);

          EnableMenuItem(hPopup, IDM_AE_COPY, MF_BYCOMMAND | MF_GRAYED);

     }

 

     if (xPos==65535) {

          GetCaretPos(&pt);

          ClientToScreen(hWnd,&pt);

          xPos=pt.x;

          yPos=pt.y;

     }

     TrackPopupMenu(hPopup,TPM_LEFTALIGN,xPos,yPos,0,hWnd,NULL);

     DestroyMenu(hPopup);

}

 

Æ˾÷¸Þ´º¸¦ ¸¸µé°í Ä¿¼­ À§Ä¡¿¡ Ãâ·ÂÇ쵂 ¿À¸¥ÂÊ Å¬¸¯ÀÌ ¾Æ´Ñ <Shift+F10>À¸·Î Æ˾÷¸Þ´º¸¦ È£ÃâÇßÀ» ¶§´Â ij·µ À§Ä¡¿¡ Ãâ·ÂÇÏ¿´´Ù. <Shift+F10>À¸·Î Æ˾÷¸Þ´º¸¦ È£ÃâÇϸé xPos, yPos ÁÂÇ¥´Â ¸ðµÎ -1(65535)·Î Àü´ÞµÈ´Ù. Ŭ¸³º¸µåÀÇ »óÅ¿¡ µû¶ó ¸Þ´ºÇ׸ñÀÇ »óŸ¦ Àû´çÈ÷ Á¶Á¤Çß´Ù. Ŭ¸³º¸µå¿¡ CF_TEXT Æ÷¸ËÀÌ ÀÖÀ¸¸é ºÙ¿©³Ö±â ¸Þ´ºÇ׸ñÀ» »ç¿ëÇÒ ¼ö ÀÖ°í À߶󳻱â, º¹»ç´Â ¼±Åÿµ¿ªÀÌ ÀÖÀ» ¶§¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

Æ˾÷¸Þ´º¸¦ ¸¸µå´Â ÀϹÝÀûÀÎ ¹æ¹ýÀº ¸®¼Ò½º¿¡ ¸Þ´º¸¦ Á¤ÀÇÇÏ°í ¸®¼Ò½º·ÎºÎÅÍ Æ˾÷¸Þ´º¸¦ Àоî¿Í Ãâ·ÂÇÏ´Â °ÍÀε¥ ¿©±â¼­´Â ÄÚµå·Î ¸Þ´º¸¦ Á÷Á¢ »ý¼ºÇÏ¿´´Ù. ¿Ö ¸®¼Ò½º¸¦ »ç¿ëÇÏÁö ¾Ê°í ±ÍÂú°Ô Äڵ带 Á÷Á¢ ¾²´Â°¡ Çϸé ApiEdit´Â ÃÖÁ¾ÀûÀ¸·Î ÄÁÆ®·ÑÀÌ µÇ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. ¹ú½á ÄÁÆ®·Ñ¿¡ °üÇÑ ³»¿ëÀ» ³íÇÒ ÇÊ¿ä´Â ¾ø°ÚÁö¸¸ ÀÏ´Ü ÄÁÆ®·ÑÀº ¸®¼Ò½º¸¦ °¡Áú ¼ö ¾ø´Ù(¶Ç´Â ´ë´ÜÈ÷ ¹ø°Å·Ó´Ù)°í ¾Ë¾Æ µÎµµ·Ï ÇÏÀÚ.