問題タブ [cdialog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
930 参照

mfc - 複数の CDockablePanes を CDialog に作成する

ここで説明されている記事とまったく同じことをしようとしています:「C++ MFC Feature Pack --> CDialog に複数の CDockablePanes を作成する

私は彼の手順に従い、CDockablePane をドッキング解除して移動できるようになりましたが、ドッキングすると同じクラッシュが発生します。彼自身の回答では、彼は自分でダミーウィンドを作成したため、MFC は作成と GetTopLevelFrame() の呼び出しをスキップしたと述べています。そして、これは私が混乱した場所です.dummywndを正確に作成するにはどうすればよいですか?

2 番目の質問は、CMyFrame と CDialog の間でデータを交換するにはどうすればよいですか?

質問をして回答した人は、何年も活動がなく、連絡が取れないようです。誰でも助けてくれますか、何かアイデアがありますか?

ありがとう、


編集:

私はプログラムを壊し、他の著者が説明したように正確にトレースバックしました。上記のダミー ウィンドウは、実際には afxdragframeimpl.cpp にあります。

void CMFCDragFrameImpl::MoveDragFrame(BOOL bForceMove)

作成する場所:

m_pWndDummy = new CDummyDockablePane;

そして呼び出します:

m_pWndDummy->CreateEx(0, _T(""), AFXGetTopLevelFrame(m_pDraggedWnd), CRect(0, 0, 0, 0), FALSE, AFX_DUMMY_WND_ID, WS_CHILD);

はい、ダイアログで CFrameWndEx を子ウィンドウとして作成し、その CFrameWndEx に子 CDockablePane を追加しようとしています。

基本的に、いくつかのコントロールを備えた MFC ダイアログ A があり、このダイアログ A 内にいくつかのティアオフ タブ XYZ が必要であり、ティアオフ タブ XYZ のそれぞれにいくつかのコントロールを追加する必要があります。したがって、これは、切り離された各 tabsXYZ が実際には 1 つの子 dialogB であることを意味します。これは、dialogA 内で CDockablePanes (実際には CPaneDialog) を使用しようとするところに来ます。

0 投票する
0 に答える
403 参照

c++ - MFC を使用して、リソース ファイルからリソースを挿入せずに CDialog::Create を使用してダイアログ ベースのアプリケーションを作成する方法は?

CFrameWnd::Create以下のように、リソース ファイルからリソースを挿入せずにフレーム ベースのアプリケーションを作成する方法を知っています。

リソース ファイルからダイアログ リソースを挿入して、ダイアログ ベースのアプリケーションを作成する必要があることはわかっています。しかしCDialog::Create、リソース ファイルからダイアログ リソースを挿入せずに、ダイアログ ベースのアプリケーションを作成するために使用することは可能ですか? (上記のように)

0 投票する
1 に答える
71 参照

c++ - CButton から派生した 'SubclassDlgItem は、VS2015 CLR を使用して CDialogBar に表示されませんが、ボタンのクリックに応答し、VC++ 6 で正常に機能しました

VC++ 6 ベースのコードを VS2015 CLR で動作するように移行しようとしています。主要な機能は動作していますが、UI に欠けているものがあります。

CWnd 派生オブジェクトと CButton オブジェクトをホストする CDialogBar があります。CWnd 派生オブジェクトは正常に表示されていますが、CButton オブジェクトはすべて非表示ですが、やみくもにクリックすると正常に動作します。

CButton オブジェクトのない別の CDialogBar が正しく表示されています。

どうすればこれを機能させることができますか?

0 投票する
1 に答える
593 参照

c++ - hwnd の上位ビットが設定されているのは正常ですか?

HWND をサブプロセスに渡して、進行状況に関するメッセージを返信できるようにします。サブプロセスからメッセージを受信しないことがあります。調査中に、サブプロセスに渡している GetSafeHwnd() が予期しない値を返しているように見えることがわかりました。

例: 0xffffffffa5400382

それに基づいて、おそらく、その値を int64/string との間で適切に変換していないと推測できます。私はそれを修正することができます。しかし、私が奇妙だと思うのは、この hwnd が正しく見えないということですか?

HWND が高いビットを設定できるシナリオはありますか? これは通常のウィンドウですか、それともそのようになる hwnd に特別な何かがありますか?

私は C++ を使用しています。これは CDialog ベースのアプリケーション ウィンドウです。