对于wm_gettext消息发出者判断的补遗
来源:互联网 发布:快递客户怎么找淘宝 编辑:程序博客网 时间:2024/05/02 07:59
前面一偏文章说了用自定义字符串对wm_gettext消息发出者进行判断,其实还有一种更简单的方法,那就是vc的ddx(数据交换).
DWORD old;
bool flag=false;
LRESULT CALLBACK newwindow(HWND h,UINT m,WPARAM w,LPARAM l){
if(m==WM_GETTEXT){
if(flag==true){
flag=false;
}
else
{
return 0;}
}
return ::CallWindowProcA((WNDPROC)old,h,m,w,l);
}
void CMfc1Dlg::DoDataExchange(CDataExchange* pDX)
{
flag=true;
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMfc1Dlg)
DDX_Control(pDX, IDC_BUTTON4, m_b);
DDX_Text(pDX, IDC_EDIT1, m_t);
//}}AFX_DATA_MAP
}
BOOL CMfc1Dlg::OnInitDialog()
{
...................//省略若干无关代码
flag=false;
return TRUE;
}
void CMfc1Dlg::OnButton1()
{
old=::SetWindowLong(GetDlgItem(IDC_EDIT1)->m_hWnd,GWL_WNDPROC,(long)newwindow);
// TODO: Add your control notification handler code here
}
void CMfc1Dlg::OnButton4()
{
UpdateData();
::AfxMessageBox(m_t);
// TODO: Add your control notification handler code here
}
说一下思路,其实很简单,我设了一个全局变量flag,当flag为true的时候便允许获值,反之不允许.因为我们每次updatedata的时候都要调用DoDataExchange里的代码,所以我们只要在这里面设置下flag,在子类化判断就行了,很方便啊!
以上代码在vc++6.0下通过.
- 对于wm_gettext消息发出者判断的补遗
- 对于wm_gettext消息发出者的处理
- 对于屏蔽wm_gettext消息的思考
- 关机之前,系统发出的消息
- QT接收SendMessage/PostMessage发出的消息
- QT接收SendMessage/PostMessage发出的消息
- 听电脑发出的声响判断故障
- 对于窗口的判断
- 利用WM_GETTEXT消息获取谷歌浏览器地址栏内容。
- 如何屏蔽pocketpc 长按触笔时,发出的菜单消息
- SendMessage() 发出的消息 PreTranslateMessage() 不一定能接收到!
- salesforce里,以自定义对象发出消息的方法
- 微信重磅更新:发出的消息允许编辑!
- Window消息循环补遗
- 对于ie版本的判断
- 对于国家广电总局发出的《关于禁止播出电脑网络游戏类节目的通知》的看法
- Android Studio——handle是发出消息后就自动接收消息的吗?
- 自己对于消息机制的理解
- 常用正则表达式大全
- 云平台的简短介绍
- FI/CO常用名词解释(非原创)
- 显示器故障分析
- 分析与比较CSS的link和import方式
- 对于wm_gettext消息发出者判断的补遗
- 交换机的发展史
- 译:设计Qt式的C++ API
- 正则表达式用法
- 怎么才能关掉一个用任务管理器关不了的进程?
- 911
- VC中文件命各表示什么?
- “产消合一”试用营销受青睐
- java