DLL文件功能:弹出一个对话框

chinaoarq 2012-12-03 04:14:42
各位大神好:
我想些一个DLL文件,插入到别人写好的记事本软件里,功能就是给他的记事本多一个“查找”菜单选项,然后点击“查找”就会弹出一个查找字符的对话框。
请问要怎么实现呢?
我DLL文件中部分代码:
extern "C" _declspec(dllexport) void ExcuteDll(HWND Phwnd,UINT IdForm)
{
/*TCHAR buf[100];
SendDlgItemMessage(Phwnd,IdForm,WM_GETTEXT,100,(LPARAM)buf);
MessageBox(Phwnd,buf,TEXT("FIND"),MB_OK);*/

HINSTANCE Find_hInstance = (HINSTANCE)GetWindowLong(Phwnd,GWL_HINSTANCE);
DialogBox(Find_hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,Find_Proc);
}
ExcuteDll这个函数在那个记事本程序里调用,传给ExcuteDll记事本的句柄Phwnd和Rich edit控件的id, 注释掉的代码用来测试传过来的值是否正确的,显示是正确的。
可是为什么下面的代码执行完却弹出了一个新的记事本对话框呢,而不是我自己的 IDD_DIALOG1呢?我很不理解啊 ,求高手指点,像我这样的情况最好用什么方法,createwindowex()吗?
...全文
268 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaoarq 2012-12-03
  • 打赏
  • 举报
回复
引用 1 楼 piaobotudou 的回复:
http://baike.baidu.com/view/1079962.htm DialogBox 该宏根据对话框模板资源创建一个模态的对话框。DialogBOX函数直到指定的回调函数通过调用EndDialog函数中止模态的对话框才能返回控制。该宏使用DialogBoxParam函数。 hlnstance:标识一个模块的事例该模块的可执行文件含有对话框模板。 ……
可是我自己的hInstance怎么获得啊?hMoudle在DllMain()里呢啊
赵4老师 2012-12-03
  • 打赏
  • 举报
回复
CreateRemoteThread
微型蚂蚁 2012-12-03
  • 打赏
  • 举报
回复
http://baike.baidu.com/view/1079962.htm DialogBox  该宏根据对话框模板资源创建一个模态的对话框。DialogBOX函数直到指定的回调函数通过调用EndDialog函数中止模态的对话框才能返回控制。该宏使用DialogBoxParam函数。 hlnstance:标识一个模块的事例该模块的可执行文件含有对话框模板。 所以要注意,如果你自己的对话框是在DLL工程里这里第一个参数你就写错了。要写成自己DLL的Instance

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧