본문 바로가기
코스웨어/14년 스마트컨트롤러

2014.09.15 출석번호 5번 김상엽 -업무일지 수정

by 알 수 없는 사용자 2014. 9. 15.
728x90
반응형

리소스 작성 및 생성

 

 

리소스 파일을 찾아서 이름.rc를 하여 리소스 파일생성

 

 

 

 

WndClass.cbClsExtra=0;
  WndClass.cbWndExtra=0;
  WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
  WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
  WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
  WndClass.hInstance=hInstance;
  WndClass.lpfnWndProc=WndProc;
  WndClass.lpszClassName=lpszClass;
  WndClass.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1); //소스 추가 
  WndClass.style=CS_HREDRAW | CS_VREDRAW;
  RegisterClass(&WndClass);

// 추가 소스

case WM_COMMAND:
      switch(LOWORD(wParam))
      {
      case ID_FILE_MENU1:

        MessageBox(hWnd,TEXT("첫 번째 메뉴를 선택하셨습니다."),TEXT("Menu Demo"),MB_OK);
        break;

      case ID_FILE_MENU2:

        MessageBox(hWnd,TEXT("두번째 메뉴를 선택하셨습니다."),TEXT("Menu Demo"),MB_OK);
        break;

      case ID_FILE_EXIT:

        DestroyWindow(hWnd);
        break;
      }
      return 0;

 

 

 액셀러레이터

액셀러레이터의 리소스 파일은 Acceleratoㅀ 설정 후 단축키를 설정합니다

#include <windows.h>
#include "resource.h"


LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPCTSTR lpszClass=TEXT("Menu");

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdParam,int nCmdShow)
{
  HWND hWnd;
  MSG Message;
  WNDCLASS WndClass;
  HACCEL hAccel;
  g_hInst=hInstance;
  
  
  WndClass.cbClsExtra=0;
  WndClass.cbWndExtra=0;
  WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
  WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
  WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
  WndClass.hInstance=hInstance;
  WndClass.lpfnWndProc=WndProc;
  WndClass.lpszClassName=lpszClass;
  WndClass.lpszMenuName= MAKEINTRESOURCE(IDR_MENU1);
  WndClass.style=CS_HREDRAW | CS_VREDRAW;
  RegisterClass(&WndClass);

  hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
    NULL,(HMENU)NULL,hInstance,NULL);
  ShowWindow(hWnd,nCmdShow);
  
  //HACCEL hAccel;
  hAccel=LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1));

  while (GetMessage(&Message,NULL,0,0)) {

    if(!TranslateAccelerator(hWnd,hAccel,&Message));
    {
      TranslateMessage(&Message);
      DispatchMessage(&Message);
    }
  }
  return (int)Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
  switch (iMessage) {

  case WM_COMMAND:
      switch(LOWORD(wParam)){
      case ID_FILE_MENU1:
        MessageBox(hWnd,TEXT("첫 번째 메뉴를 선택하셨습니다."),TEXT("Menu Demo"),MB_OK);
        break;

      case ID_FILE_MENU2:
        MessageBox(hWnd,TEXT("두번째 메뉴를 선택하셨습니다."),TEXT("Menu Demo"),MB_OK);
        break;

      case ID_FILE_EXIT:
        DestroyWindow(hWnd);
        break;
      }
      return 0;
  case WM_DESTROY:
    PostQuitMessage(0);
      return 0;
  }
            
  return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

 

 문자열 StrTable 문자열 나타내기.

 

#include <windows.h>
#include "resource.h"

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPCTSTR lpszClass=TEXT("First");

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdParam,int nCmdShow)
{
  HWND hWnd;
  MSG Message;
  WNDCLASS WndClass;
  g_hInst=hInstance;
  
  WndClass.cbClsExtra=0;
  WndClass.cbWndExtra=0;
  WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
  WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
  WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
  WndClass.hInstance=hInstance;
  WndClass.lpfnWndProc=WndProc;
  WndClass.lpszClassName=lpszClass;
  WndClass.lpszMenuName=NULL;
  WndClass.style=CS_HREDRAW | CS_VREDRAW;
  RegisterClass(&WndClass);

  hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
    NULL,(HMENU)NULL,hInstance,NULL);
  ShowWindow(hWnd,nCmdShow);
  
  while (GetMessage(&Message,NULL,0,0)) {
    TranslateMessage(&Message);
    DispatchMessage(&Message);
  }
  return (int)Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
  HDC hdc;
  PAINTSTRUCT ps;
  TCHAR str[256];

  switch (iMessage) {

  case WM_PAINT:
    hdc=BeginPaint(hWnd,&ps);
    LoadString(g_hInst,IDS_STRING1,str,256); 
    TextOut(hdc,10,10,str,lstrlen(str));
    EndPaint(hWnd,&ps);
    return 0;

  case WM_DESTROY:
    PostQuitMessage(0);
    return 0;
  }
  return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

 

728x90