NPAPI 利用MFC 扩展CEdit 展示

NPAPI 利用MFC 扩展CEdit 展示

1) 创建windowed的插件模式

2) 在插件上创建Dialog

3) 继承CEdit派生出MyCEditEx监听粘贴消息

4) 在Dialog创建MyCEditEx

5) 设置MyCEditEx最大输入长度和内容

 

1) 创建windowed的插件模式

2) 在插件上创建Dialog

m_hWnd=CreateDialogA(hlnstance,lpTemplate,hWndParent,(DLGPROC)DlgProc);


hInstance: GetModuleHandle("npsimple.dll")

lpTemplate : MAKEINTRESOURCE(IDD_INPUT)

hWndParent: 插件的窗口句柄

DlaProc: 对话框的消息响应函数

3) 继承CEdit派生出MyCEditEx监听粘贴消息

class MyCEditEx : public CEdit {}

重写WindowProc函数过滤掉粘贴消息:

头文件中声明:

virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);

源文件中定义:

LRESULT MyCEditEx::WindowProc( UINT message, WPARAM wParam, LPARAM lParam){

       switch (message) {

       case WM_PASTE:

              return 0;

       }

       return CEdit::WindowProc(message,wParam,lParam);

}

4) 在Dialog创建MyCEditEx

利用MFC库的create函数:

CWnd *m_cWnd = FromHandle(m_hWnd);

myEdit = new MyCEditEx();

myEdit->Create(WS_VISIBLE|ES_PASSWORD|WS_BORDER|WS_EX_STATICEDGE, CRect(0,0,width,height),m_cWnd,-1);

这里用了MFC函数,但是整个工程非MFC工程,所以使用前先对做一些MFC做的初始化工作,不然会出现异常:

AfxWinInit(GetModuleHandle("npsimple.dll"),NULL,::GetCommandLine(),0);

最后:

myEdit->ShowCaret();

5) 设置MyCEditEx最大输入长度和内容

设置最大长度:

myEdit->SetLimitText (maxNum);

获取内容:

myEdit->GetWindowText(buf,TEXTBOX_MAXLENGTH);

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值