1

DICOMDIR を読み取ってから、マウスでスクロールするか、キーボードの矢印キーを上下に押して、特定のシリーズのすべての画像を 1 つずつ表示しています。

今、たまたまこれらの画像の 1 つに線を引きました。現在、画像をスクロールすると、すべての画像で線が表示されたままになります。

しかし、望ましい結果は、スクロールを開始すると、次の画像に属していないため、その行が消えることです。その線を描いた画像までスクロールして戻ると、その画像に線が表示されるはずです。

その線が最初に描画され、他には描画されない画像のみの一部にする方法はありますか?

私が試したこと:その画像のファイルパス(線が描かれている場所)をCStringArrayに保存します。この保存されたファイル パスを使用して、その画像をその線と共に描画するにはどうすればよいですか?

4

1 に答える 1

1

あなたが何をしようとしているのかよくわかりません。特定の画像のライン アノテーションが必要な場合は、それを GSPS データとして保存し、ピクセル データと一緒に読み取ります。GreyScale プレゼンテーション ステート オブジェクトを使用すると、複数のグラフィック アノテーション シーケンスを 1 つのオブジェクトに含めることができます。

あなたのやり方で

ファイルのパスを CStringArray に保存したので、画像が読み取られて表示されるコードを見つけます。これに似たコードを追加します (読んだままに表示していると思います)。次のコードを見てください。

// Code to read the file where path is csFilePath
// Read bitmap is stored to CBitmap* pBitmap
CDC* pDC = GetDC();
CDC memDC;
memDC.CreateCompatibleDC( pDC );
CBitmap* pOldBitmap = memDC.SelectObject( pBitmap );
pDC->BitBlt( xVal, yVAl, width, height, memDc, SRC_COPY );
memDC.SelectObject( pOldBitmap );
memDC.DeleteObject();
for( int nIdx; nIdx < yourLineArray.GetSize(); nIdx++ )
{
    if( csFilePath == yourLineArray[nIdx] )
    {
        pDC->DrawLine( x1, y1, x2, y2 );
        break;
    }
}
于 2012-06-29T03:53:07.910 に答える