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("np******.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)
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("np******.dll"),null,::getcommandline(),0);
最後:
myedit->showcaret();
5) 設定myceditex最大輸入長度和內容
設定最大長度:
myedit->setlimittext (maxnum);
獲取內容:
myedit->getwindowtext(buf,textbox_maxlength);
MFC擴充套件DLL 小結
1 在dll中啟動多執行緒,用 beginthread 不能使用afxbeginthread 2 dll中與客戶程式之間通訊可以有2中方法 1 通過訊息,在dll中增加乙個自定義訊息,此訊息的id注意不能和客戶端程式中的訊息重複。在客戶端程式中將視窗控制代碼傳給dll,在客戶端寫上此訊息的響應函式,...
MFC介面擴充套件庫
bcgcontrolbar專業版是mfc的乙個擴充套件庫,您可以用來構建類似於microsoft office microsoft visual studio和其他一些知名產品的高階使用者介面。這個擴充套件庫包含了150多個經過精心設計,測試和具有完備文件的mfc擴充套件類。我們的控制項能夠輕鬆的融...
利用MFC獲取網頁內容
include include include include include include include include using namespace std string gethtml cstring url pfile close delete pfile session.close ...