各位如何在DLL中编写代码,通过调用该DLL的到出函数,生成窗口,并使该窗口能够接受消息,最好给个源代码。有分的。
解决方案 »
- 线程传参是乱码
- 程序中的三个问题,请高手不吝赐教.
- 同时对串口读写怎么才能不冲突
- 求购读取AutoCad各版本的DWG、DWF、DXF文件源代码
- 请问哪里有侯捷的《深入浅出mfc》简体中文电子版下载?
- 常常以为星际高手对恃会让人血气方涨,今天看了(精华区)111222与masterZ的对话,又一次让我激情澎湃,真是天外有天
- VC模板中如何设置消息映射BEGIN_MESSAGE_MAP
- 急,请各位高手看一下问题出现在哪里??
- 我快疯了,难道API也有bug?
- ------救命求助-----用socket向silver stream 服务器发送流问题?
- 谁能详细解释一下消息的使用?
- activex里有cfont属性,应该在类向导里使用什么属性设置?
也可以把窗口创建 显示写成一个函数导出一个函数接口就可以了吧。
(1)在DLL中写一个类CYourWnd继承CWnd;
(2)定义全局变量CYourWnd *g_pWnd;
(3)DLL的export函数:
_declspec(dllexport) void DllShowWindow(HWND hWndParent)
{
......
g_pWnd = new CYourWnd(......);
if(g_pWnd == NULL) return;
CWnd *pWndParent = CWnd::FromHandle(hWndParent);
if(g_pWnd->Create(......, pWndParent, ......))
g_pWnd->ShowWindow(SW_SHOW);
......
}
(4)DLL的ExitInstance()中:
if(g_pWnd != NULL)
{
HWND hWnd = g_pWnd->GetSafeHwnd();
if((hWnd != NULL) && (::IsWindow(hWnd)))
g_pWnd->DetroyWindow(); delete g_pWnd;
}
(5)该窗口的消息处理可以在CYourWnd类中加入消息处理函数。
(1)在DLL中写一个类CYourWnd继承CWnd;
(2)定义全局变量CYourWnd *g_pWnd;
(3)DLL的export函数:
_declspec(dllexport) void DllShowWindow(HWND hWndParent)
{
......
g_pWnd = new CYourWnd(......);
if(g_pWnd == NULL) return;
CWnd *pWndParent = CWnd::FromHandle(hWndParent);
if(g_pWnd->Create(......, pWndParent, ......))
g_pWnd->ShowWindow(SW_SHOW);
......
}
(4)DLL的ExitInstance()中:
if(g_pWnd != NULL)
{
HWND hWnd = g_pWnd->GetSafeHwnd();
if((hWnd != NULL) && (::IsWindow(hWnd)))
g_pWnd->DetroyWindow(); delete g_pWnd;
}
(5)该窗口的消息处理可以在CYourWnd类中加入消息处理函数。
(1)在DLL中写一个类CYourWnd继承CWnd;
(2)定义全局变量CYourWnd *g_pWnd;
(3)DLL的export函数:
_declspec(dllexport) void DllShowWindow(HWND hWndParent)
{
......
g_pWnd = new CYourWnd(......);
if(g_pWnd == NULL) return;
CWnd *pWndParent = CWnd::FromHandle(hWndParent);
if(g_pWnd->Create(......, pWndParent, ......))
g_pWnd->ShowWindow(SW_SHOW);
......
}
(4)DLL的ExitInstance()中:
if(g_pWnd != NULL)
{
HWND hWnd = g_pWnd->GetSafeHwnd();
if((hWnd != NULL) && (::IsWindow(hWnd)))
g_pWnd->DetroyWindow(); delete g_pWnd;
}
(5)该窗口的消息处理可以在CYourWnd类中加入消息处理函数。