2014-07-22 5 views
0

나는 C++을 가르치려고 노력하고 있으며 걸림돌을 만났습니다. 이것은 데이터베이스 Win32 프로그램에 간단한 연결을 만드는 첫 번째 시도입니다.문자열을 lang.h에 정의하고 WM_PAINT에서 사용 하시겠습니까?

내가하고 싶은 것 : 내가 lang.h에 정의 된 모든 내 문자열을 (이 쉽게 번역을 허용 할) 원하는

.

다음 WM_PAINT case 문에서 DrawText()을 사용하여 화면의 특정 위치에 텍스트를 그립니다.


나는이 함께 화면에 그릴 텍스트를 입수했습니다 :

case WM_PAINT: 
    { 
     hdc = BeginPaint(hWnd, &ps); 

     // TODO: Add any drawing code here... 

     SelectObject(ps.hdc, GetStockObject(GRAY_BRUSH)); 
     Rectangle(ps.hdc, 100, 100, 500, 300); 


     RECT rect; 
     GetClientRect(hWnd, &rect); 
     SetTextColor(ps.hdc, RGB(0, 0, 0)); 
     SetBkMode(ps.hdc, TRANSPARENT); 
     rect.left = 110; 
     rect.top = 110; 
     LPCWSTR message = L"Connect to Database: "; 
     DrawText(ps.hdc, message, -1, &rect, DT_SINGLELINE | DT_NOCLIP); 


     EndPaint(hWnd, &ps); 
    } 
break; 

을하지만, 내가 정말하고 싶은 것은 내가 lang.h에 정의 된 문자열을 사용하는 것입니다

예 :

//lang.h 
#define MSG_DBPATH = L"Path to Database:"; 

//SimpleDBConnect.cpp 
case WM_PAINT: 
     { 
      hdc = BeginPaint(hWnd, &ps); 

      // TODO: Add any drawing code here... 

      SelectObject(ps.hdc, GetStockObject(GRAY_BRUSH)); 
      Rectangle(ps.hdc, 100, 100, 500, 300); 


      RECT rect; 
      GetClientRect(hWnd, &rect); 
      SetTextColor(ps.hdc, RGB(0, 0, 0)); 
      SetBkMode(ps.hdc, TRANSPARENT); 
      rect.left = 110; 
      rect.top = 110; 
      DrawText(ps.hdc, MSG_DBPATH, -1, &rect, DT_SINGLELINE | DT_NOCLIP); 


      EndPaint(hWnd, &ps); 
     } 
      break; 

(이, 내가 노력하는 많은 것들 중 하나가 작동하지 않습니다)는 것이 가능 애추에 텍스트를 그릴 수 있나요 외부 헤더 파일에 정의 된 텍스트를 사용하여 WM_PAINT case 문 내에서 n?

답변

0
#define MSG_DBPATH L"Path to Database:" 

등호는없고 세미콜론은 사용하지 마십시오.

+0

오, 나는 많은 다른 것들을 sooooo 시도하고 물건을 찾고 몇 시간을 보냈다. 당신은 아마 30 초안에 해결했습니다 ... 롤, 감사, 무리! –

+0

9 분 안에 답을 수락 할 수 있습니다 ... –

관련 문제