CRectTrackerでマウスカーソルが見えなくなる

[戻る]
ミラー 2004/07/06(火) 10:17:00
前にもCRectTrackerで質問させていただいたミラーといいます。
今までと違うアプリケーションのダイアログの上にCRectTrackerで
四角を生成しました。でもなぜかそのアプリケーションだけ
その生成した四角の上にマウスカーソルを持ってくると
移動用の4方向に矢印のついたカーソルに変わらずに
四角の下にカーソルが潜ったように見えなくなってしまいます。
(カーソルは見えなくなりますが移動や大きさを変えるのはできます)
ぜひ助けてください、お願いします。
ダイアログの設定など必要な情報があればレスしますので教えてください。
下記はコーディングです。
CRectTracker m_ROITracker;

BOOL Touroku::OnInitDialog()
{
    //ROI初期値設定
    m_ROITracker.m_nStyle = CRectTracker::solidLine;
    m_ROITracker.m_nStyle |= CRectTracker::resizeOutside;
    m_ROITracker.m_sizeMin.cx = 15; 
    m_ROITracker.m_sizeMin.cy = 15; 
    m_ROITracker.m_nHandleSize = 10; 
    m_ROITracker.m_rect = CRect( 50, 50, 100, 100 );
}

void Touroku::OnPaint() 
{
    CPaintDC dc(this); // 描画用のデバイス コンテキスト
    // TODO: この位置にメッセージ ハンドラ用のコードを追加してください

    //デバイスコンテキスト生成
    CDC    *pDC = this->GetDC();

    //ROI描画
    m_ROITracker.Draw( pDC );

    //デバイスコンテキスト開放
    ReleaseDC( pDC );
}

BOOL Touroku::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
    if( m_ROITracker.SetCursor( pWnd, nHitTest ) ) {
        return( TRUE );
    }    
    
    return CDialog::OnSetCursor(pWnd, nHitTest, message);
}

void Touroku::OnLButtonDown(UINT nFlags, CPoint point) 
{
    BOOL bo = m_ROITracker.Track( this, point, NULL );
    // Force a redraw
    Invalidate( TRUE );

    CDialog::OnLButtonDown(nFlags, point);
}

たく 2004/07/06(火) 10:39:26
私も同様の現象に遭遇しました。

私の場合はCRectTrackerのコンストラクタで、
うまいことリソースをロードできていないようだったので、
サブクラス化したCRectTrackerのコンストラクタで自前でロードしました。

ミラー 2004/07/07(水) 09:38:24
「たく」さんも同様の現象に遭遇されて大変でしたね。

サブクラス化してロードしたら大丈夫だったんですね。
「たく」さんできたらサブクラス化したときの
コーディングを教えてくれませんか?
全部公開はできないと思いますが・・・。

たく [E-Mail] 2004/07/08(木) 10:34:35
ちょっと無理です、すみません。

CRectTrackerのコンストラクタのソースを見ればわかると思いますよ。

ミラー 2004/07/08(木) 19:26:21
[[解決]]
無理を言ってすいませんでした。
コンストラクタのソースをよく見てみます。
ありがとうございました。

古いスレッドには追加発言できません。