windows mobile 学习笔记--自定义的CEdit(2)

来源:互联网 发布:数据保护解决方案 编辑:程序博客网 时间:2024/06/05 06:01

前章写到自定义的Cedit通知Scroll 滚动并弹出软键盘。

实现如下:

1)新建一个继承CEdit的类CmyEdit,自定义消息WM_MY

#define WM_MY (WM_USER+1000)

2)实现消息WM_ONLBOTTONDOWN

void CmyEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值

 CEdit::OnLButtonDown(nFlags, point);
  ::SipShowIM(SIPF_ON);//打开软键盘
 RECT rc;
 GetWindowRect(&rc);
 GetParent()->PostMessageW(WM_MY,WPARAM(rc.top));//发送消息,及控件的位置
}

3)在实现的对话框类中新建一个函数用于响应WM_MY

头文件中:

afx_msg LRESULT OnMyMg(WPARAM w,LPARAM l);

cpp文件中:

BEGIN_MESSAGE_MAP(CaddcDlg, CDialog)
 ……
 ON_MESSAGE(WM_MY, OnMyMg)
……
END_MESSAGE_MAP()

实现函数:

LRESULT CaddcDlg::OnMyMg(WPARAM w,LPARAM l)
 {
 int pos=int(w);
 if(pos>py)
OnVScroll(SB_THUMBPOSITION,pos-py,NULL);
 return 1;
 }

一个自定义的CEdit就完成了。当点击编辑框时弹出软键盘。

原创粉丝点击