グラフィックス

線を描いたりする領域のことを、クライアント領域といいます。

クライアント領域のサイズを得る (win144)

//
//	MyApp.h
//

class MyApp : public MyMainWnd{
public:
	// WM_PAINT
	void wmPaint(HDC hdc){
		MyDC g(hdc);
		RECT rc;
	
		GetClientRect(hWnd, &rc); 
		// 直線を描く----------------------------
		g.MoveTo(rc.left, rc.top);
		g.LineTo(rc.right, rc.bottom);
	}
};

実行画面です。

解説

画面のサイズを得るには、GetClientRect関数を使います。 これは次のようになっています。

BOOL GetClientRect(
  HWND hWnd,      // ウィンドウのハンドル
  LPRECT lpRect   // クライアント座標
);

そこで、RECT構造体の変数 rc を用意します。 RECT構造体は、次のように定義されています。

typedef struct tagRECT {
    LONG left;       // 左上x座標
    LONG top;        // 左上y座標
    LONG right;      // 右下x座標
    LONG bottom;     // 右下y座標
} RECT;

これは、長方形の左上の座標と右下の座標です。

GetClientRect によって、クライアント領域の座標が返ってきます。 しかし、左上の座標は (0, 0) なので、サイズがわかります。

ですから、画面の左上から右下へ直線を描くことができます。


[前] [目次] [次]