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