CRectTrackerでマウスカーソルが見えなくなる – プログラミング – Home

CRectTrackerでマウスカーソ...
 
通知
すべてクリア

[解決済] CRectTrackerでマウスカーソルが見えなくなる


ミラー
 ミラー
(@ミラー)
ゲスト
結合: 21年前
投稿: 3
Topic starter  

前にも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);
}


引用未解決
トピックタグ
たく
 たく
(@たく)
ゲスト
結合: 23年前
投稿: 37
 

私も同様の現象に遭遇しました。

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


返信引用
ミラー
 ミラー
(@ミラー)
ゲスト
結合: 21年前
投稿: 3
Topic starter  

「たく」さんも同様の現象に遭遇されて大変でしたね。

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


返信引用
たく
 たく
(@たく)
ゲスト
結合: 21年前
投稿: 29
 

ちょっと無理です、すみません。

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


返信引用
ミラー
 ミラー
(@ミラー)
ゲスト
結合: 21年前
投稿: 3
Topic starter  

無理を言ってすいませんでした。
コンストラクタのソースをよく見てみます。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました