0

MSDNで、これを読みました

WM_PAINT メッセージを使用せずに描画する場合、アプリケーションは通常、ウィンドウを無効にしません。代わりに、ウィンドウを簡単に復元して描画を削除できるような方法で描画します。

どういう意味ですか ?私はGISプログラムを書いたので、「ズームイン」機能を実装したいです。マウスの左ボタンを押してマウスを動かして長方形を描きます。長方形を描いていますが、長方形が地図を覆っています。最初は長方形のためだと思いますが透明でない場合、AlphaBlend() を使用して透明な四角形を描画します。これは同じです。私は何をすべきか ?

長方形を描く

LRESULT OnMouseMove(UINT nflags, CPoint point)
{
    if (m_bZoomInMode)
    {
        m_curScreenPoint.x = point.x;
        m_curScreenPoint.y = point.y;
        HDC hdc = GetDC();
        SelectObject(hdc, (HBRUSH)NULL_BRUSH);
        Rectangle(hdc, m_startScreenPoint.x, m_startScreenPoint.y, point.x, point.y);
        ReleaseDC(hdc);
        return 0;
    }
}
4

1 に答える 1