私は、Visual C++ 2008プログラムを作成して、ウィンドウ内のデータをプロットしようとしています。私はvariousplacesからこれを行う正しい方法は、WndProcを上書きすることです。だから私は、Windowsは、Visual C++ 2008 Express Editionの中でフォームアプリケーション作られた、と私は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);
}
私は、Visual C++ 2008 Express Editionの中でこれをコンパイルしようとすると、 、このエラーが発生します。 エラーC2664:「をBeginPaint関数」:「HWND」
からパラメータ1を変換することはできません「システム::のIntPtr」私はthis->代わりにm.HWndの同じエラーを処理し使用しようとすると発生する。
私は(HWND)にm.HWndをキャストしようとすると、このエラーが発生します。 エラーC2440: 'タイプのキャストを': 'HWND'に 'システム::のIntPtr' から変換することはできません
たぶん私はm.HWndをpin_ptrなどにキャストする必要があります。
私は彼がC++コードではなくAndrewであると信じています。貧しい若者を混乱させるのに十分な違いがあります。 – user72491
ありがたいことに、私はC#でたくさんの経験をしていますので、私はそれを見て、それをかなり素早くC++に変換しています。 Win32アプリケーションとWindows Formsアプリケーションの違いを指摘してくれてありがとう、Andrew Grant –
奇妙な、元の質問のコードは、私が見たC++のようには見えません! –