LoadMenu

¿øÇü

HMENU LoadMenu(HINSTANCE hInstance, LPCTSTR lpMenuName);

MFC ¿øÇü

BOOL CMenu::LoadMenu( LPCTSTR lpszResourceName );

Àμö

¢ºhInstance : ¸Þ´º ¸®¼Ò½º¸¦ °¡Áø ¸ðµâÀÇ ÇÚµé.

¢ºlpMenuName : ¸Þ´º ¸®¼Ò½ºÀÇ À̸§À» ÁöÁ¤ÇÏ´Â ¹®ÀÚ¿­. ¸Þ´º ¸®¼Ò½º¸¦ Á¤¼ö·Î Á¤ÀÇÇßÀ» °æ¿ì »óÀ§ ¿öµå´Â 0ÀÌ°í ÇÏÀ§ ¿öµå¿¡ ¸Þ´º ID¸¦ ÁöÁ¤ÇØ ÁÖ¸é µÈ´Ù. MAKEINTRESOURCE ¸ÅÅ©·Î ÇÔ¼ö¸¦ »ç¿ëÇϸé Á¤¼ö ID¸¦ °¡Áö´Â ¸Þ´º ¸®¼Ò½º¸¦ Àоî¿Ã ¼ö ÀÖ´Ù. ºñÁÖ¾ó C++ÀÇ ¸Þ´º ÆíÁý±â´Â Á¤¼ö ID·Î ¸Þ´º ¸®¼Ò½º¸¦ ÀÛ¼ºÇØ ÁֹǷΠÅë»ó MAKEINTRESOURCE ¸ÅÅ©·Î ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

¸®ÅÏ

¼º°øÇϸé Àоî¿Â ¸Þ´ºÀÇ ÇÚµéÀ» ¸®ÅÏÇÏ¸ç ½ÇÆнà NULLÀ» ¸®ÅÏÇÑ´Ù.

¼³¸í

¸Þ´º ¸®¼Ò½º¸¦ Àоî¿Â´Ù. ¸Þ´º´Â Åë»ó ¸®¼Ò½º·Î ÀÛ¼ºµÇ¸ç ¸µÅ©½Ã ½ÇÇà ÆÄÀÏ¿¡ ÇÕÃÄÁø´Ù. À©µµ¿ì¿¡ ¸Þ´º¸¦ ºÙÀÌ´Â ¹æ¹ýÀº ¿©·¯ °¡Áö°¡ Àִµ¥ °¡Àå ÈçÇÏ°Ô »ç¿ëµÇ´Â ¹æ¹ýÀº À©µµ¿ì Ŭ·¡½ºÀÇ lpszMenuName ¸â¹ö¿¡ »ç¿ëÇÒ ¸Þ´º ¸®¼Ò½º¸¦ ÁöÁ¤ÇØ ÁÖ´Â °ÍÀÌ´Ù.

WndClass.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1);

lpszMenuName ¸â¹ö¿¡ ¸Þ´º ¸®¼Ò½º¸¦ ´ëÀÔÇØ ÁÖ¸é ÀÌÈĺÎÅÍ ÀÌ À©µµ¿ì Ŭ·¡½º·ÎºÎÅÍ »ý¼ºµÇ´Â ¸ðµç À©µµ¿ì´Â ÀÌ ¸Þ´º ¸®¼Ò½º¸¦ »ç¿ëÇÑ´Ù. µÎ¹ø° ¹æ¹ýÀº CreateWindowÀÇ hMenu ¸â¹ö¿¡ »ç¿ëÇÒ ¸Þ´º ÇÚµéÀ» ´ëÀÔÇØ ÁÖ´Â °ÍÀÌ´Ù. ¸¸¾à À©µµ¿ì Ŭ·¡½º¿¡µµ ¸Þ´º°¡ ÁöÁ¤µÇ¾î ÀÖ°í CreateWindow¿¡µµ ¸Þ´º ÇÚµéÀÌ ÁöÁ¤µÇ¾î ÀÖÀ¸¸é CreateWindowÀÇ ¸Þ´º ÁöÁ¤ÀÌ ¿ì¼±À̹ǷΠÀ©µµ¿ì Ŭ·¡½º¿¡ ÀÖ´Â ¸Þ´º ´ë½Å ´Ù¸¥ ¸Þ´º¸¦ »ç¿ëÇÏ·Á¸é CreateWindow¿¡ ¸Þ´º ÇÚµéÀ» ÁöÁ¤ÇÏ¸é µÈ´Ù. ÇÏÁö¸¸ Åë»óÀûÀ¸·Î ÇÑ À©µµ¿ì Ŭ·¡½º·ÎºÎÅÍ ÇϳªÀÇ ¸ÞÀÎ À©µµ¿ì¸¦ ¸¸µå¹Ç·Î ù¹ø° ¹æ¹ýÀÌ ÈξÀ ´õ ¸¹ÀÌ »ç¿ëµÈ´Ù.

¸Þ´º¸¦ »ç¿ëÇÏ´Â ¼¼¹ø° ¹æ¹ýÀº ½ÇÇàÁß¿¡ ¸Þ´º¸¦ Àоî¿Í À©µµ¿ì¿¡ ºÙÀÌ´Â °ÍÀ̸ç À̶§ LoadMenu ÇÔ¼ö°¡ »ç¿ëµÈ´Ù. LoadMenu·Î Àоî¿Â ¸Þ´º ÇÚµéÀ» SetMenu ÇÔ¼ö·Î À©µµ¿ì¿¡ ºÙ¿©ÁÖ¸é µÈ´Ù. ´Ü, À̶§ LoadMenu·Î ÀÐÀº ¸Þ´º ÇÚµéÀº ¹Ýµå½Ã DestroyMenu ÇÔ¼ö·Î ÇØÁ¦ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ½ÇÇàÁß¿¡ ¸Þ´º ¸®¼Ò½º¸¦ Àоî¿Í ¸Þ´º¸¦ À©µµ¿ì¿¡ ºÙÀδÙ.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	static HMENU hMain;
	char Mes[]="¸Þ´º ¿¹Á¦ÀÔ´Ï´Ù";

	switch(iMessage) {
	case WM_CREATE:
		hMain=LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_MENU1));
		SetMenu(hWnd,hMain);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,10,10,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		DestroyMenu(hMain);
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

WM_CREATE¿¡¼­ IDR_MENU1À¸·Î Á¤ÀÇµÈ ¸Þ´º ¸®¼Ò½º¸¦ Àоî¿Í SetMenu ÇÔ¼ö·Î ¸ÞÀÎ À©µµ¿ì¿¡ ¸Þ´º¸¦ ¼³Á¤ÇÏ¿´´Ù. ÀÌ µÎ ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é ¸Þ´º ¸®¼Ò½º ¿©·¯ ¹úÀ» Àоî³õ°í ½ÇÇàÁß¿¡ ¸Þ´º¸¦ ¹Ù²ã °¡¸ç »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

Âü°íÇÔ¼ö

SetMenu

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


written by http://www.winapi.co.kr