CWnd;sendmessage

recapturetaiwan 2000-08-21 08:16:00
还得请教各位大虾:
现在有一个单文档工程,about对话框里有一个按钮button1
button1的单击事件的处理函数是CAboutDlg:OnButton1()
{
AfxMessageBox("hello");
}
在视图中的OnIniupdate()函数中用sendmessage(WM_LBUTTONDOWN,IDC_BUTTON1,0);
但运行时却没有出现有hello字样的消息框,这是为何?要实现之,正确的方法是什么?
我要是把WM_LBUTTONDOWN换成自定义的消息,并在自定义的
消息处理函数中也打出个消息框,又该怎样做?
请给个例子好吗.
...全文
186 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Holly 2000-08-22
  • 打赏
  • 举报
回复
问题是:
你在视图的OnInitUpdate()函数中怎么可能有CAboutDlg的存在????
Holly 2000-08-22
  • 打赏
  • 举报
回复
问题是:
你的CAboutDlg在视图的OnInitUpdate()函数运行时怎么可以出现的?
你不会告诉我你在OnInitUpdate()中先调用CAboutDlg的实体变量的DoModal()吧?
请讲清楚些!!
dzl 2000-08-21
  • 打赏
  • 举报
回复
CButton* m_pButton=(CButton *)GetDlgItem(IDC_TEST);
SendMessage(WM_COMMAND,MAKELPARAM(m_pButton->GetDlgCtrlID(),BN_CLICKED),
(LPARAM)m_pButton->GetSafeHwnd());

若要换成自定义消息,注意参数lParam及wParam的正确填写就行了.
莫等闲 2000-08-21
  • 打赏
  • 举报
回复
我试过了,用SENDMESSAGE好象无法实现,可能是因为两个BUTTON是两个不同的对象
你发送的消息是不能被BUTTON1响应的,如果需要的话,可以让他们指向同一个函数
到时候调用就可以了
关于自定义消息,可以这样做:
#define WM_MYMESSAGE (WM_APP+100) //定义消息

在头文件的中定义响应消息的函数:
//{{AFX_MSG(CMinWinDlg)
……
afx_msg void OnMyMessage(UINT nID, LPARAM lParam); //在.H中

//}}AFX_MSG
DECLARE_MESSAGE_MAP()
在.CPP的文件中声明:
BEGIN_MESSAGE_MAP(CMinWinDlg, CDialog)
//{{AFX_MSG_MAP(CMinWinDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_SYSCOMMAND()
ON_WM_CLOSE()
……
//}}AFX_MSG_MAP
ON_MESSAGE(WM_MYMESSAGE,OnMyMessage) //在.cpp中,位置不要错了
END_MESSAGE_MAP()

然后添加成员函数
void CMyWinDlg::OnMyMessage(UINT uID, LPARAM lParam)
{
……
}


16,471

社区成员

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

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

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