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

解決


あらあら  2005-10-12 19:44:41  No: 59245

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

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


dairygoods  2005-10-13 00:59:29  No: 59246

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


あらあら  2005-10-13 18:27:42  No: 59247

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

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

よろしくお願いします


dairygoods  2005-10-13 18:40:34  No: 59248

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-14 00:19:46  No: 59249

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

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

ありがとうございました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加