Window에서 일부 데이터를 표시하는 Visual C++ 2008 프로그램을 만들려고합니다. 나는 variousplaces에서 올바른 방법은 WndProc를 재정의하는 것입니다. 그래서 윈도우 비주얼 C++ 2008 익스프레스 에디션에서 Forms 응용 프로그램을 만들어, 나는 Form1.h이 코드를 추가하지만, 컴파일되지 않습니다 :BeginPaint의 hWnd 매개 변수에 대한 올바른 값은 무엇입니까?
public:
[System::Security::Permissions::PermissionSet(System::Security::Permissions::SecurityAction::Demand, Name="FullTrust")]
virtual void WndProc(Message %m) override
{
switch(m.Msg)
{
case WM_PAINT:
{
HDC hDC;
PAINTSTRUCT ps;
hDC = BeginPaint(m.HWnd, &ps);
// i'd like to insert GDI code here
EndPaint(m.Wnd, &ps);
return;
}
}
Form::WndProc(m);
}
내가 비주얼 C++ 2008 익스프레스 에디션이 컴파일 할 때 이 오류가 발생합니다 오류 C2664 : 'BeginPaint 함수': 'HWND'
에 '시스템 :: IntPtr입니다'에서 매개 변수 1 변환 할 수 없습니다 내가 this-를 사용하려고 할 때> 같은 오류 m.HWnd 대신 처리 발생합니다. 나는 (HWND)에 m.HWnd를 캐스팅하려고하면
이 오류가 발생합니다 오류 C2440를 : '형식 캐스트': 어쩌면
'HWND'에서 '시스템 :: IntPtr입니다'에서 변환 할 수 없습니다 I m.HWnd를 pin_ptr 등으로 캐스트해야합니다.
나는 C++이 아니라 C++ 코드 Andrew를 언급한다고 생각한다. 가난한 청년을 혼란스럽게하는 차이점이 충분합니다. – user72491
예, 고맙게도 저는 C#에서 많은 경험을 가졌습니다. 그래서 그것을 볼 때 알았고 꽤 빨리 C++로 변환했습니다. Win32 응용 프로그램과 Windows Forms 응용 프로그램 인 Andrew Grant의 차이점을 지적 해 주셔서 감사합니다. –
이상한, 원래의 질문에있는 코드는 C++처럼 보입니다. –