如何向同一个程序的另一个无模态对话框的一个按钮发送一个改变标题的消息(这段代码错在哪)

HoneyPot 2005-09-05 10:31:35
如何向同一个程序的另一个无模态对话框发送一个改变标题的消息
用cdlg dlg;
dlg.m_button.setwindowtext("test");

并包含了#include "相应文件";

总是报错

那么如何改正
...全文
164 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
HoneyPot 2005-09-06
  • 打赏
  • 举报
回复
哪位帮忙看看,急呀,就是无模对话框与主窗体的交互问题,但是编译出错,给个code也行呀
caocheng8230 2005-09-06
  • 打赏
  • 举报
回复
你调用的SetWindowText应该是在窗体产生之后进行的,而如果你把MFC跟踪下去就会发现:好像在DoModal()函数调用后产生出消息响应函数,也就是说你的对话框还没有初始化,因此对没有初始化的窗口改变标题是非法的,最好的方法是在对话框中设置一个字符串,然后设置一个接口把该字符串从你的视图中传入到该对话框当中,然后在消息响应OnInitialDialog()当中设置该BUTTON的文字.
jjiaming 2005-09-06
  • 打赏
  • 举报
回复
哦,总算明白你的意思了.这样,你在CDlg1类的定义前面加上前向声明Class CDlg;同样,也在CDlg类的定义前面加上前向声明Class CDlg1;另外,在Dlg1.h加上#include "Dlg.h",在Dlg.h加上#include "Dlg1.h",这样就可以了
HoneyPot 2005-09-05
  • 打赏
  • 举报
回复
http://www.jxcn.cn/so/cnstu/3914/3914652.htm baidu 这个人的也是这个问题,大家想想见过这样的吗难道是vc6 的bug
HoneyPot 2005-09-05
  • 打赏
  • 举报
回复
不是了,其实 是一个主窗体CDlg上嵌了一个无模的子窗体CDlg1,但是要求子窗体上的一个按键消息改变主窗体的标题由于子窗体生成也是CDlg1 *m_pDlg1;这样的语句m_pDlg1=new CDlg1; 生成的,请问如何让子窗体相应主窗体的消息 (感谢了各位)
i_noname 2005-09-05
  • 打赏
  • 举报
回复
无模态应该先Create
HoneyPot 2005-09-05
  • 打赏
  • 举报
回复
error C2143: syntax error : missing ';' before '*' error C2501: 'CDlg' : missing storage-class or type specifiers error C2501: 'CDlg' : missing storage-class or type specifiers
gomoney 2005-09-05
  • 打赏
  • 举报
回复
楼主把完整有关代码和错误信息贴出来嘛。
其实简单的说就是由cdlg提供一个成员函数,然后再需要改的时间,调用该对象成员函数即可。
class cdlg:.....
{
...
public:
void ChangeWindowText(CString NewText);
...
}
void cdlg::ChangeWindowText(CString NewText)
{
SetWindowText(NewText);
}
然后...
cdlg dlg;
dlg.ChangeWindowText("abc");
HoneyPot 2005-09-05
  • 打赏
  • 举报
回复
那么具体怎么改呀头一次遇见这种问题,谢谢了大虾们。
lixiaosan 2005-09-05
  • 打赏
  • 举报
回复
public:
CDlg1 *m_pDlg1;

void CTest3Dlg::OnButton1()
{
if(m_pDlg1 == NULL)
{
m_pDlg1 = new CDlg1(this);
m_pDlg1->m_pTest3Dlg = this;
m_pDlg1->Create( CDlg1::IDD, GetDesktopWindow() );
m_pDlg1->ShowWindow(SW_SHOW);
}
}

void CTest3Dlg::OnButton12()
{
// TODO: Add your control notification handler code here
m_pDlg1->SetWindowText("123");
}
gison 2005-09-05
  • 打赏
  • 举报
回复
这样不对,你没有把父窗口的指针传给子窗口.你定义的 dlg只是个空的句柄.

16,551

社区成员

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

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

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