VC++消息响应问题
答案:2 悬赏:70 手机版
解决时间 2021-02-02 02:06
- 提问者网友:龅牙恐龙妹
- 2021-02-01 11:27
有两个对话框,第一个对话框有两个控件,编辑框和按钮;第二个对话框只有一个静态文本。当按钮第一个对话框的按钮控件时,发生如下事件:获取编辑框内的文本并将其发送到第二个对话框的静态文本。编程语言:优先CLR,其次MFC。先谢过了!
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-02-01 13:04
基本不需要MFC,不过Windows API还是要的^_^!
方法一:用FindWindows获取第二个Dialog的窗口pWnd *,然后用pWnd->SendMessage(WM_USERABCDEFG,(WPARAM)szStrbuf,0)把消息和数据送到第二个Dialog,最后在第二个Dialog中响应WM_USERABCDEFG这个消息,用SetDlgItemText(IDC_STATIC,(LPCTSTR)szStrbuf)把文本写入Static框。
方法二:在你程序的开始,直接用RegisterMessage注册一个消息(如果Dlg1和Dlg2是两个不同的程序,那么你需要在这两个程序中同时都调用RegisterMessage!放心,无论如何都只有一个可以注册成功的!),比如WM_USERABCDEFG,在你的第一个Dialog框中当Button被按下时发送这个消息,同样在第二个Dialog中响应WM_USERABCDEFG这个消息,用SetDlgItemText(IDC_STATIC,(LPCTSTR)szStrbuf)把文本写入Static框。
方法一:用FindWindows获取第二个Dialog的窗口pWnd *,然后用pWnd->SendMessage(WM_USERABCDEFG,(WPARAM)szStrbuf,0)把消息和数据送到第二个Dialog,最后在第二个Dialog中响应WM_USERABCDEFG这个消息,用SetDlgItemText(IDC_STATIC,(LPCTSTR)szStrbuf)把文本写入Static框。
方法二:在你程序的开始,直接用RegisterMessage注册一个消息(如果Dlg1和Dlg2是两个不同的程序,那么你需要在这两个程序中同时都调用RegisterMessage!放心,无论如何都只有一个可以注册成功的!),比如WM_USERABCDEFG,在你的第一个Dialog框中当Button被按下时发送这个消息,同样在第二个Dialog中响应WM_USERABCDEFG这个消息,用SetDlgItemText(IDC_STATIC,(LPCTSTR)szStrbuf)把文本写入Static框。
全部回答
- 1楼网友:上分大魔王
- 2021-02-01 13:32
如果只是在view中画圆,只需要在onlbuttondown中添加就可以了,比如:
void cmystatusbarview::onlbuttondown(uint nflags, cpoint point)
{
// todo: add your message handler code here and/or call default
cdc *pdc = getdc();
pdc->ellipse(crect(point.x - 10, point.y - 10, point.x + 10, point.y + 10)); //10是你要画的圆的半径
cview::onlbuttondown(nflags, point);
}
这种做法最小化窗口,或是变化大小后图像会消失,因为在view的onpaint或是别的函数中重画了,但没有画先前的圆。如果要想在变化窗口之后还看到圆,必须把之前画的保存起来,然后在onpaint或是ondraw中依次画出来就ok了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯