如何在一个dialog里调用另一个dialog中checkbox(或combobox)的值?

fanyulong 2002-07-25 12:23:40
大家有没有范例?让我参考一下。我想用
HWND GetDlgItem(
HWND hDlg,
int nIDDlgItem ); 这个api函数实现,不知道怎么用
...全文
144 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishush 2002-07-25
  • 打赏
  • 举报
回复
在你调用另一个窗体时,用 myWnd.DoModal((CWnd*)this)
然后在窗体的类构造函数中用成员变量保存该CWnd*
fanyulong 2002-07-25
  • 打赏
  • 举报
回复
tab1就是另外一个dialog
fanyulong 2002-07-25
  • 打赏
  • 举报
回复
对的,另一个dialog是当前dialog的child,
(((tab1*) (m_tabctrl.pSettingTabPages[0]))->GetDlgItem(IDC_CHECK1))->Enabled==true
这是我写的,其中m_tabctrl是当前dialog中一个CTabCtrl的实例,pSettingTabPages[0]是指向tab1这个类的指针,出错信息是
"Enabled is not a member of cwnd"

FFXI 2002-07-25
  • 打赏
  • 举报
回复
更正一下:
((CComboBox*)pOtherDlg->GetDlgItem(ID_CONTROL))->GetCurSel();
anothervip 2002-07-25
  • 打赏
  • 举报
回复
pOtherDlg->GetDlgItem(ID_CONTROL)->GetCurSel();
... ...
anothervip 2002-07-25
  • 打赏
  • 举报
回复
pOtherDlg->GetDlgItem(ID_CONTROL)->GetCurSel();
... ...
leafdown 2002-07-25
  • 打赏
  • 举报
回复
这个如果你的另一个Dialog是这个对话框的子窗口,那么很简单,类变量可以用吧?
否则,你可以EnumWindown得到另一个窗口句柄,然后是用你的GetDlgItem
sjzxyg 2002-07-25
  • 打赏
  • 举报
回复
知道句柄和控件ID就可以了啊
likebj 2002-07-25
  • 打赏
  • 举报
回复
设置一个全局函数HWND hDlg1,把你要用的哪个hDlg保存,不知道这样可不可以!
fanyulong 2002-07-25
  • 打赏
  • 举报
回复
ThisTimeThree()给的东西不错,还是应该用getcheck()来判断checkbox是否被选中,不应该用enabled,谢谢所有回复的人,散分了
ThisTimeThree 2002-07-25
  • 打赏
  • 举报
回复
前一贴发的不对情愿量我
我觉得Enable是tabl的与IDC_CHECK1绑定的成员变量是吧
要是这样,直接用 m_tabctrl.pSettingTabPages[0]->Enable,前提是Enable是BOOL类型并反映了IDC_CHECK1为ID的CheckBox状态。
或者
CButton *tt= (CButton *)m_tabctrl.pSettingTabPages[0]->GetDlgItem(IDC_CHECK1);
BOOL b;
if((tt!=NULL)&&tt->IsKindOf(RUNTIME_CLASS(CButton)))
{
if(tt->GetCheck == BST_UNCHECKED)
b = false;
else
b = true;//three state check box use 3 values identify different states
}

if(b )
{...}
anothervip 2002-07-25
  • 打赏
  • 举报
回复
如果你的"子窗口"是TabCtrl,那么直接
GetDlgItem(IDC_CHECK1)->EnableWindow(TRUE)
ThisTimeThree 2002-07-25
  • 打赏
  • 举报
回复
((tab1*) (m_tabctrl.pSettingTabPages[0]))->GetDlgItem(IDC_CHECK1)返回的是CWnd *,如果程序逻辑正确

((CMyWnd *)((tab1*) (m_tabctrl.pSettingTabPages[0]))->GetDlgItem(IDC_CHECK1))->Enable == true;可改变另一类的值。
其中把CMyWnd替换成你的特殊窗口类,但我比较怀疑是否能真正解决问题。

sidewalk 2002-07-25
  • 打赏
  • 举报
回复
to fanyulong(刷刷) :

lishush(☆↑苯鸟先飞↑☆)
同志给出的方法是可行的!你可以试一试!
fanyulong 2002-07-25
  • 打赏
  • 举报
回复
看看我写的程序问题出在哪里?
fanyulong 2002-07-25
  • 打赏
  • 举报
回复
大家帮忙阿

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧