サイズ変更枠の色を変更するには?

解決


あらあら  2005-10-12 10:44:41  No: 59245  IP: 192.*.*.*

質問です
WinXp vc++.netを利用しています
ダイアログウインドウやフレームウインドウ等でタイトルバーの無いクライアント領域のみのウィンドウを作り
ウインドウスタイルを変更してサイズ変更枠をつけました。
このサイズ変更枠の色、枠線のデザインなどを変更する方法はあるのでしょうか

WinAPIでもMFCでもかまいません。
よろしくお願い致します

編集 削除
dairygoods  2005-10-12 15:59:29  No: 59246  IP: 192.*.*.*

WM_NCPAINT をハンドルします。
枠の幅も変えたければ、WM_NCCALCSIZE
当たり判定も変えたければ、WM_NCHITTEST
など、WM_NC〜メッセージを調べてみるとよいです。

編集 削除
あらあら  2005-10-13 09:27:42  No: 59247  IP: 192.*.*.*

回答ありがとうございます
早速MFCでDialog::OnNcPaint()
を拾って見たのですが、戻り値も引き数も無い関数で
このタイミングでどの値に何をいれてあげればいいかが
分からない状態です
色の関係なのでGetDC->*****あたりをMSDNで調べていますが
「コレ」というのが見つかりません

このイベントで四角の線を枠線の上に張り付けて、WM_MOVEのたびに
再度四角のサイズを変更して再描画するという考え方なのでしょうか

よろしくお願いします

編集 削除
dairygoods  2005-10-13 09:40:34  No: 59248  IP: 192.*.*.*

OnPaint() と似たようなものです。
自分でDCを用意して好きなように描画します。

例:
void CMyDlg::OnNcPaint() 
{
  CWindowDC dc(this);

  CRect rect;
  GetWindowRect(rect);
  rect.OffsetRect(-rect.TopLeft());

  // 外枠を赤で囲む
  dc.FrameRect(rect, &CBrush(RGB(255,0,0)));
  ...
}

編集 削除
あらあら  2005-10-13 15:19:46  No: 59249  IP: 192.*.*.*

dairygoodsさんありがとうございます
戴きましたサンプルでうまく行きました

OnNCPaintの呼ばれるタイミングなども
分かって来ました
DCの簡単なサンプルまでつけていただきありがとうございます
これで他の色や枠線のデザインを試す事もできます。

ありがとうございました

編集 削除