在MFC對話框之間傳值可以通過以下幾種方式實現:
// 對話框類的構造函數
CMyDialog::CMyDialog(int value, CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_MYDIALOG, pParent), m_value(value)
{
}
// 創建對話框實例時傳入值
CMyDialog dlg(value);
dlg.DoModal();
// 對話框類中定義成員變量
class CMyDialog : public CDialogEx
{
public:
int m_value;
};
// 在打開對話框之前設置值
CMyDialog dlg;
dlg.m_value = value;
dlg.DoModal();
// 對話框A發送消息
SendMessage(WM_USER_VALUE, WPARAM(value), LPARAM(0));
// 對話框B接收消息
BEGIN_MESSAGE_MAP(CMyDialogB, CDialogEx)
ON_MESSAGE(WM_USER_VALUE, OnUserValue)
END_MESSAGE_MAP()
LRESULT CMyDialogB::OnUserValue(WPARAM wParam, LPARAM lParam)
{
int value = wParam;
// 處理傳遞過來的值
return 0;
}
// 定義全局變量
int g_value = 0;
// 在對話框A中設置值
g_value = value;
// 在對話框B中取得值
int value = g_value;
以上是一些常見的傳值方式,根據具體需求選擇合適的方式進行傳值。