在dll中产生对话框的方法

在dll中产生对话框的方法

ID:13034035

大小:63.00 KB

页数:8页

时间:2018-07-20

在dll中产生对话框的方法_第1页
在dll中产生对话框的方法_第2页
在dll中产生对话框的方法_第3页
在dll中产生对话框的方法_第4页
在dll中产生对话框的方法_第5页
资源描述:

《在dll中产生对话框的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在DLL中产生对话框的方法一(Win32DLL)什么是Dll?Standsfor"DynamicLinkLibrary."ADLL(.dll)filecontainsalibraryoffunctionsandotherinformationthatcanbeaccessedbyaWindowsprogram.Whenaprogramislaunched,linkstothenecessary.dllfilesarecreated.Ifastaticlinkiscreated,the.dllfileswillbeinuseaslongastheprogramis

2、active.Ifadynamiclinkiscreated,the.dllfileswillonlybeusedwhenneeded.Dynamiclinkshelpprogramsuseresources,suchasmemoryandharddrivespace,moreefficiently.对话框:对话框可以分为modal和modeless两种。在Win32Dll中创建modal对话框。在一个Win32Dll中创建modal对话框非常简单,我们都知道,Win32函数DialogBox能够创建一个modal对话框,并且modal对话框的消息是独立于主程序

3、消息循环的,所以可以直接在Dll内部建立对话框自己的窗口过程。下面就是一个在Win32Dll中创建modal对话框的示例://name:Modal_Dialog.cpp#include#include"resource.h"BOOLCALLBACKDlgProc(HWNDhwnd,UINTMsg,WPARAMwParam,LPARAMlParam){switch(Msg){caseWM_INITDIALOG:returnTRUE;caseWM_COMMAND:switch(wParam){caseIDOK:MessageBox(NULL,"

4、这是一个modal对话框的例子","提示",MB_OK);EndDialog(hwnd,0);returnTRUE;}break;}returnFALSE;}extern"C"__declspec(dllexport)voidShowDialog(){HINSTANCEhinst;hinst=LoadLibrary("Modal_Dialog.dll");//获取库所在的实例句柄DialogBox(hinst,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);FreeLibrary(hinst);}//name:Test.cp

5、p……typedefvoid(*fp)();HINSTANCEhDll;fpShow;hDll=LoadLibrary("Modal_Dialog.dll");Show=(fp)GetProcAddress(hDll,"ShowDialog");(*Show)();FreeLibrary(hDll);……在Win32Dll中创建modeless对话框。与modal对话框不同,modeless对话框的消息是要经过主程序消息循环的,这样一来,就必须在调用该Dll的主程序中处理对话框的消息循环,这就无法达到利用Dll来完成组件化开发的要求。其实我们可以人为的Model

6、ess对话框创建一个窗口类,我们知道窗口过程是属于窗口类的,这样一来就有了主窗口的消息循环。//name:Modeless_Dialog.cpp#include#include"resource.h"LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);BOOLCALLBACKDlgProc(HWND,UINT,WPARAM,LPARAM);extern"C"int__declspec(dllexport)ShowDialog(){staticTCHARszAppName[]=TEXT("Model

7、ess_Dialog");HWNDhwnd;MSGmsg;WNDCLASSwndclass;HINSTANCEhInstance;HWNDhDialog;hInstance=LoadLibrary("Modeless_Dialog.dll");wndclass.style=CS_HREDRAW

8、CS_VREDRAW;wndclass.lpfnWndProc=WndProc;wndclass.cbClsExtra=0;wndclass.cbWndExtra=DLGWINDOWEXTRA;//Note!wndclass.hInstance=hInstance;wnd

9、class.hIcon=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。