2011-12-28 18 views
1

3d Maxプラグインでビューポートに画像を描画したい場合 GraphicsWindowクラスには、ビューポートで3Dオブジェクトを描画する機能がありますが、これらの描画呼び出しは現在のビューポートとグラフィックスのレンダリングの制限。 これは望ましくありません。私が描画したい画像は、3Dグラフィックスモードがどんなグラフィックスモードであってもハードウェアが使用されていても描かれなければならないので、私は3D画像で描画する必要はありません。Max SDKでビューポートに画像を描画する方法

私はビューポートのHWNDを取得することができ、max sdkには関数があります。 DrawIconButton();

この機能を使用しようとしましたが、正常に機能しないため、画像はユーザーのやりとりでランダムにちらつきますが、対話性がないと消えます。 i RedrawViewsCallback関数でこの関数を実装しましたが、DrawIconButton()関数は説明されていませんが、これが正しい方法で実装されているかどうかはわかりません。ここで

は私がイメージを描画するために使用していたコードです:

void Sketch_RedrawViewsCallback::proc (Interface * ip) 
{ 

    Interface10* ip10 = GetCOREInterface10(); 
    ViewExp* viewExp = ip10->GetActiveViewport(); 
    ViewExp10* currentViewport; 

    if (viewExp != NULL) 
    { 
     currentViewport = reinterpret_cast<ViewExp10*>(viewExp->Execute(ViewExp::kEXECUTE_GET_VIEWEXP_10)); 
    } else { 
     return; 
    } 

    GraphicsWindow* gw = currentViewport->getGW(); 

    HWND ViewportWindow = gw->getHWnd(); 
    HDC hdc = GetDC(ViewportWindow); 
    HBITMAP bitmapImage = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1)); 
    Rect rbox(IPoint2(0,0),IPoint2(48,48)); 

    DrawIconButton(hdc, bitmapImage, rbox, rbox, true); 

    ReleaseDC(ViewportWindow, hdc); 
    ip->ReleaseViewport(currentViewport); 

}; 
+0

ようこそStackOverflow。これまでに試したことのあるコードは期待通りに動作していません。あなたがしようとしていることが誰にも分かっていない場合は、どのように行うのかを理解するのは非常に難しいです。 –

答えて

0

私はビューポートウィンドウに直接描画する方法を見つけることができませんでした、しかし、私は透明モードレスを使用して問題を解決しましたダイアログボックス。

関連する問題