線を描いたりする領域のことを、クライアント領域といいます。
// // 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) なので、サイズがわかります。
ですから、画面の左上から右下へ直線を描くことができます。