首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ Winapi HWND获得WndProc配置

C++ Winapi HWND获得WndProc配置
EN

Stack Overflow用户
提问于 2015-07-27 09:58:21
回答 1查看 1.8K关注 0票数 2

我需要获得当前的WndProc及其消息和配置,并将自己的代码添加到其中。为什么我需要这个?因为我是在用WndProc定义窗口(及其子控件)的IDE下工作的,我需要修改它,因为它包含与每个控件相关的所有操作。如果我将控件指向自定义的WndProc,则该控件将失去该IDE设置的所有操作和配置。有什么建议吗?

计划:

代码语言:javascript
复制
HWND button; //My Button
LONG_PTR wndProc = GetWindowLongPtr(button, GWL_WNDPROC); //Getting the WndProc

wndProc -> Get this `WndProc` source code

LRESULT CALLBACK WndProcedure(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){

    wndProc (all the data);
    + my messages

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-27 10:10:42

当然,您不能获得“旧”WndProc的源代码,但是可以在新的wnd proc中使用CallWindowProc()调用它。查看这篇文章:

当您子类一个窗口时,当您想要调用原始窗口过程时,您必须调用的是该窗口的原始窗口过程

引用:

..。您的子类函数应该如下所示: wndProcOrig = (WNDPROC)SetWindowLongPtr(hwndButton,GWLP_WNDPROC,(LONG_PTR)SubclassWndProc);LRESULT回调SubclassWndProc(HWND hwnd,UINT wm,WPARAM wParam,LPARAM lParam) { switch (wm) {.默认值:返回CallWindowProc(wndprocOrig,hwnd,wm,wParam,lParam);}

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31650118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档