- ベストアンサー
ウィンドウの外枠について
通常、ウィンドウをドラッグするとウィンドウの真中は透明になって外枠はちょっと太目の半透明な線になりますよね。 これが付箋紙95というソフトでは外枠が1本の細い点線になるのですが、このようにするにはウィンドウスタイルをどう設定すれば良いのでしょうか? 環境 WIN98 VC++6.0 MFC にて
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (7)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.8
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.6
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.5
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.4
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.3
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.2
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.1
お礼
回答ありがとうございます。 補足に書いた方法でうまく行きました。
補足
1.WS_THICKFRAMEを付けた場合 WM_NCPAINTに書くことで不具合現象は解決しました。 2.WS_THICKFRAMEを付けない場合 以下コードでウィンドウサイズ変更が可能になりました。 出典 http://www24.cds.ne.jp/~neg/pro/piyo1/dialog/resize.html struct { UINT num,uit; } tblnht[]={ 1,HTTOP, 2,HTRIGHT, 3,HTTOPRIGHT, 4,HTBOTTOM, 6,HTBOTTOMRIGHT, 8,HTLEFT, 9,HTTOPLEFT, 12,HTBOTTOMLEFT, 0,0}; UINT CTest0037Dlg::OnNcHitTest(CPoint point) {//WS_THICKFRAME // TODO:この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください RECT rect; UINT flg,i; GetWindowRect(&rect); flg=0; if(point.y<rect.top+16) flg|=1; if(point.y>rect.bottom-16) flg|=4; if(point.x<rect.left+16) flg|=8; if(point.x>rect.right-16) flg|=2; for(i=0;tblnht[i].num;++i) if(tblnht[i].num==flg) return(tblnht[i].uit); return CDialog::OnNcHitTest(point); }