2017-02-03 13 views
0

私はMFC分割ウィンドウクラスのオーバーライドで探しています:WTL CSplitterWindowのサイズ変更を防止する方法は?

https://www.codeproject.com/Articles/6188/How-to-prevent-resizing-of-views-in-a-splitter-win

私はWTL CSplitterWindowとオーバーライドのソースコードをテストしていたが、それは働いていません。

私はCSplitterWindowクラスの代わりにCSplitOverrideを使ってMainFrm.hを修正しました。

「api-ms-win-core-library-loader-l1-2-0.dllがありません」と表示されたときにポップアップエラーメッセージが表示されます。

windows 7 64bit OSプラットフォーム、32ビットvs2015ビルド。

class CSplitOverride : public CSplitterWindow 
{ 
public: 
    CSplitOverride() { } 

protected: 
    BEGIN_MSG_MAP(CSplitOverride) 
    MESSAGE_HANDLER(WM_NCHITTEST, OnNcHitTest) 
    END_MSG_MAP() 

public: 
    LRESULT OnNcHitTest(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) 
    { 
    return HTNOWHERE; 
    } 
}; 

EDIT:私は厚いフレームの設定を試みましたが、利用できませんでした。 Jan Sのソリューションは、私が望むように動作します。

+0

質問が十分に正確ではありません。あなたはそれがユーザーの入力に反応しないようにしますか?親がサイズ変更されたときにサイズを変更したくないのですか? –

+0

私は何をしようとすると、ビデオsdkサンプルアプリケーション、メインウィンドウのサイズ変更無効にされ、ビデオフレームウィンドウのサイズを変更するべきではありません。 – sailfish009

+0

dependency walkerを見ると、コアウィンドウのdllの多くは、api-ms-win-core-libraryloader-l1-2-0.dllまたは別のバージョンに依存しています。あなたの実行ファイルは、直接それに依存するべきではありません。 –

答えて

1

私はあなたがいると思うも有用である

excellent tutorial on splitter windows WTLのSourceForgeのサイト上で(これは、それがたとえvs2013でコンパイルするために取得するためにいくつかの変更が必要です!)

This discussionをマイケルDunnsを見てみましょうメインフレームのサイズが変更されたときにペインを一定のサイズに保つ方法を尋ねるそれは

atlsplit.hは、以下の拡張スタイルを定義し、固定ペインのアライメントに依存

#define SPLIT_RIGHTALIGNED  0x00000004 
#define SPLIT_BOTTOMALIGNED  SPLIT_RIGHTALIGNED 

マイケル・ダンが言うように - 「これらの3つのスタイルのいずれも左であることに、スプリッタのデフォルト値を指定されていない場合または上部に位置合わせされた。

  • SPLIT_NONINTERACTIVEペインに
  • m_cxyMinハードコードアライメント

    m_wndHorzSplit.SetSplitterExtendedStyleによって指定されたウィンドウの最小サイズをリサイズからユーザーを停止する(SPLIT_BOTTOMALIGNED | SPLIT_NONINTERACTIVE)。 m_wndHorzSplit.m_cxyMin = 150;

+0

m_vSplit.SetSplitterExtendedStyle(SPLIT_NONINTERACTIVE);チャームのように働く! – sailfish009

関連する問題