ある時点で、私はこれを持っています
LRESULT CALLBACK WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
if(msg==WM_CREATE)
{
LPCREATESTRUCT pcs = (LPCREATESTRUCT)lParam;
D2DResources* pD2DResources = (D2DResources*)pcs->lpCreateParams;
::SetWindowLongPtrW(
hWnd,
GWLP_USERDATA,
PtrToUlong(pD2DResources)
);
}
else
{
D2DResources* pD2DResources = reinterpret_cast<D2DResources*>(static_cast<LONG_PTR>(
::GetWindowLongPtrW(
hWnd,
GWLP_USERDATA
)));
switch(msg)
{
case WM_PAINT:
{
pD2DResources->OnRender();
ValidateRect(hWnd, NULL);
}
break;
case WM_SIZE:
{
UINT width = LOWORD(lParam);
UINT height = HIWORD(lParam);
pD2DResources->OnResize(width, height);
}
break;
したがって、私の WinProc は、以前に作成された D2DResources にアクセスできます。ここで、以前に作成した別のオブジェクトにアクセスできるようにします。それ、どうやったら出来るの?つまり、以前に作成された複数のオブジェクトにアクセスできますか? もしそうなら、どのように?
編集: Raymond Chen は次のように述べています。それ、どうやったら出来るの?誰か私に例を挙げてもらえますか?