画面の座標について – プログラミング – Home

通知
すべてクリア

画面の座標について


nagashima
 nagashima
(@nagashima)
ゲスト
結合: 23年前
投稿: 7
Topic starter  

nagashimaと申します。
Windows2000/VC++6.0/MFCで開発しています。
スクリーンやクライアント座標(ピクセル値)を相対座標?( 画面の左上隅(0,0)、画面の右
下隅(65535,65535))に変更するにはどのようにすれば良いでしょうか?
mouse_eventに関する質問で、相対座標のことが書かれていましたが、スクリーン座標から相対
座標の変換方法については、書かれていませんでした。
お分かりの方がいれば、ご教授お願いします。


引用解決済
トピックタグ
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

ScreenToClient( HWND, LPPOINT );
ClientToScreen( HWND, LPPOINT );

あと適当に計算。


返信引用
不良PG
 不良PG
(@不良PG)
ゲスト
結合: 23年前
投稿: 80
 

::GetSystemMetrics等でスクリーンサイズを取得する。

あとは、計算するだけです・・


返信引用
みみみ
 みみみ
(@みみみ)
ゲスト
結合: 23年前
投稿: 14
 

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);
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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