nagashimaと申します。
Windows2000/VC++6.0/MFCで開発しています。
スクリーンやクライアント座標(ピクセル値)を相対座標?( 画面の左上隅(0,0)、画面の右
下隅(65535,65535))に変更するにはどのようにすれば良いでしょうか?
mouse_eventに関する質問で、相対座標のことが書かれていましたが、スクリーン座標から相対
座標の変換方法については、書かれていませんでした。
お分かりの方がいれば、ご教授お願いします。
ScreenToClient( HWND, LPPOINT );
ClientToScreen( HWND, LPPOINT );
あと適当に計算。
::GetSystemMetrics等でスクリーンサイズを取得する。
あとは、計算するだけです・・
DCの操作だけならこんな風になります。
#define NORM_X (65535+1)
#define NORM_Y (65535+1)
void CMyView::OnDraw(CDC* pDC)//例CViewの子クラス
{
RECT rect;
GetClientRect( & rect );
pDC->SetMapMode( MM_ANISOTROPIC );
//pDC->SetWindowOrg( 0, 0 );
pDC->SetWindowExt( NORM_X, NORM_Y);
//pDC->SetViewportOrg( 0, 0 );
pDC->SetViewportExt( rect.right, rect.bottom );
pDC->MoveTo( 0, 0 );
pDC->LineTo(NORM_X, NORM_Y);
pDC->MoveTo( NORM_X, 0 );
pDC->LineTo(0, NORM_Y);
}