2016-08-22 26 views
0

CFormViewによってホースされた(WS_CHILD | DS_CONTROL)スタイルの埋め込み子ウィンドウにボーダーを追加するにはどうすればよいですか?MFC WS_CHILDウィンドウに細いボーダーを追加する

Thin境界線タイプを選択してダイアログエディタに境界線を追加しようとしましたが、動作しません。

SetWindowLongModifyStyleも試しました。しかし、WS_BORDERスタイルは追加されますが、境界線はありません。

スタイルを選択して埋め込み子ウィンドウに枠線を追加することはできますか?私はそれを自分で描くべきですか? @IInspectableが指摘するように

おかげで、 関

+1

[SetWindowLongPtr](https://msdn.microsoft.com/en-us/library/windows/desktop/ms644898.aspx)から:*「特定のウィンドウデータがキャッシュされるため、** SetWindowLongPtr * * [** SetWindowPos **](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633545.aspx)関数を呼び出すまで有効になりません "* SWP_DRAWFRAMEを渡す[SetWindowPos](https://msdn.microsoft.com/en-us/library/windows/desktop/ms633545.aspx)が必要です。 – IInspectable

+0

@IInspectableありがとうございます!私のコードを 'ModifyStyle(0、WS_BORDER、SWP_DRAWFRAME)'に変更して、今動作します。 ( 'SetWindowPos'は内部的に' ModifyStyle'によって呼び出されます)。 –

+0

それを答えとして書くべきです。あなたが疑問に思っている場合は、[OK]をクリックして[私自身の質問に答えることができますか?](http://stackoverflow.com/help/self-answer)を参照してください。 – IInspectable

答えて

0

は、SetWindowPosSWP_DRAWFRAMEを渡すには、ウィンドウのスタイルを変更した後に必要とされます。

私はようやく私のWS_CHILDウィンドウにWS_BORDERを追加し、三番目のパラメータにSWP_DRAWFRAMEフラグを渡すためにModifyStyleを選択:m_wndMainPage.ModifyStyle(0, WS_BORDER, SWP_DRAWFRAME)。内部的にSetWindowPosを呼び出し、子ウィンドウを更新します。期待どおりウィンドウの境界線が描画されます。

関連する問題