
No.2ベストアンサー
- 回答日時:
>その挙動はResEditなどでも作れるものでしょうか?
リソースだけの問題でもないと思いますが……。
そういう処理をするコードが必要でしょう。
まぁ、面倒ならダイヤログリソースにして必要に応じてメイン画面にコントロールとして貼る。
とかでしょうかねぇ…。
ソレならソレで面倒も増えますが。
http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vcln …
当方、C#で「同一プログラムだけど起動時の条件によってUIが変わる」なんてのを処理するのにpanelコンテナ使って実装しましたけどね。
条件1の時のpanelと条件2の時のpanelを作って、それぞれの子として各種ボタンやら配置。
フォームのコンストラクタで表示するpanelを選択して、フォーム本体のサイズも算出して微調整かしました。
# まぁこれだと動かなかった方のpanelやら、それらのイベントハンドラやら無駄が多いんですが…。
No.3
- 回答日時:
こんな感じかな。
CSplitterWnd
について調べて下さい。VC++2005の場合です。
class C3InViewExSplitWnd : public CSplitterWnd
{
DECLARE_DYNAMIC(C3InViewExSplitWnd)
// インプリメンテーション
public:
C3InViewExSplitWnd();
~C3InViewExSplitWnd();
CWnd* GetActivePane(int* pRow = NULL, int* pCol = NULL);
};
/////////////////////////////////////////////////////////////////////////////
class CSQMailBoxFrame : public CMDIChildWnd
{
DECLARE_DYNCREATE(CSQMailBoxFrame)
public:
CSQMailBoxFrame();
// アトリビュート
public:
// オペレーション
public:
//オーバーライド
// ClassWizard は仮想関数のオーバーライドを生成します。
//{{AFX_VIRTUAL(CSQMailBoxFrame)
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
// インプリメンテーション
public:
virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
virtual ~CSQMailBoxFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
// 生成したメッセージ マップ関数
protected:
C3InViewExSplitWnd m_wndSplitter3;
C3InViewExSplitWnd m_wndSplitter32;
//{{AFX_MSG(CSQMailBoxFrame)
// メモ - ClassWizard はこの位置にメンバ関数を追加または削除します。
// この位置に生成されるコードを編集しないでください。
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
BOOL CSQAdBookFrame::OnCreateClient(LPCREATESTRUCT lpcs,
CCreateContext* pContext)
{
// 1行, 2列のスプリッターを作成
if (!m_wndSplitter.CreateStatic(this,1,2))
{
TRACE0("Failed to CreateStaticSplitter\n");
return FALSE;
}
// 1 番目のスプリッター ペインを追加 - 0 行目のデフォルト ビュー
int cxText = max(lpcs->cx - 250, 20);
if (!m_wndSplitter.CreateView(0, 0,
RUNTIME_CLASS(CSQAdBookView), CSize(cxText, 0), pContext))
{
TRACE0("Failed to create first pane\n");
return FALSE;
}
if (!m_wndSplitter.CreateView(0,1,
RUNTIME_CLASS(C2SQRListView), CSize(0, 0), pContext))
{
TRACE0("Failed to create second pane\n");
return FALSE;
}
// すべて動作した場合、2 つの異なるビューを含む スプリッター ウィンドウ
// ができます。
return TRUE;
}
// CSQAdBookFrame
BOOL CSQAdBookFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~(LONG)FWS_ADDTOTITLE;
return CMDIChildWnd::PreCreateWindow(cs);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JScrollPaneで、表示がおかしく...
-
GetDIBits関数の使い方について
-
C#からVC++DLLの呼び出しに失敗...
-
C#から、C++で作成したdll内の...
-
ボタンの複数割り当てについて
-
コンボボックスを使う時の警告
-
アプレットでマウスイベントが...
-
Exception in thread "main" ...
-
二分探索木の要素の数を数える...
-
パスがとおらない・・・
-
正規表現
-
C# DataGridView列カスタマイズ
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
JavaScriptの変数をjavaのメソ...
-
ORA-01858: 数値を指定する箇所...
-
VBAで配列の計算
-
javaで質問です。 文字列2023/2...
-
JavaScriptを使ってロト6の当...
-
streamで送信されたArrayListを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
Junitテストでvoid戻り値メッソ...
-
C#でキーイベントが発生しない...
-
ボタンの複数割り当てについて
-
C#で、あるクラスのメンバーす...
-
C#から、C++で作成したdll内の...
-
C# WinForm のDataGridView Cel...
-
C#でのWNetAddConnection3の使...
-
C# 親フォームで指定した値を...
-
C# 矢印キーの取得
-
unityでのC++エラーの原因がわ...
-
C# DataGridView列カスタマイズ
-
コンボボックスを使う時の警告
-
C#で、定数をフラグ(if文)に...
-
C# MouseHoverを何度も呼ぶには
-
C#で別のFormへ複数の値を返そ...
-
正規表現
-
【Java】画像表示が出来ない!
-
C# visibleプロパティをfalseに...
-
JavaのSwingで別のフォーム...
おすすめ情報