¼±Åÿµ¿ªÀ» ¸¸µé¾úÀ¸¸é ÀÌÁ¦ »ç¿ëÇÒ ¶§´Ù. Ŭ¸³º¸µå¸¦ ÅëÇØ ¼±ÅÃÇÑ ¹®ÀÚ¿À» º¹»çÇÏ¿© ´Ù¸¥ ÇÁ·Î±×·¥¿¡°Ô ÁÙ ¼öµµ ÀÖ°í ¹®¼ÀÇ ´Ù¸¥ ºÎºÐÀ¸·Î ºÙ¿©³Ö±â¸¦ ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ·± µ¿ÀÛÀ» ÇÏ·Á¸é ¸ÕÀú ¸í·ÉÀ» ³»¸± ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÇÊ¿äÇϹǷΠÆ˾÷¸Þ´º¸¦ ºÙ¿© º¸µµ·Ï ÇÏÀÚ. ¾îÂ÷ÇÇ 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´Â ÃÖÁ¾ÀûÀ¸·Î ÄÁÆ®·ÑÀÌ µÇ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. ¹ú½á ÄÁÆ®·Ñ¿¡ °üÇÑ ³»¿ëÀ» ³íÇÒ ÇÊ¿ä´Â ¾ø°ÚÁö¸¸ ÀÏ´Ü ÄÁÆ®·ÑÀº ¸®¼Ò½º¸¦ °¡Áú ¼ö ¾ø´Ù(¶Ç´Â ´ë´ÜÈ÷ ¹ø°Å·Ó´Ù)°í ¾Ë¾Æ µÎµµ·Ï ÇÏÀÚ.