社区
界面
帖子详情
*请教* 只知道窗口句柄 如何获取窗口大小改变消息(wm_size)!!!!
allenjiao
2010-09-30 03:02:24
本人开发的动态库dll供别人使用;
使用dll只给我传了窗口句柄 在dll需要捕捉窗体改变大小消息
有没有什么办法?????????
我网上查了下 ;钩子可以实现吗?
...全文
737
17
打赏
收藏
*请教* 只知道窗口句柄 如何获取窗口大小改变消息(wm_size)!!!!
本人开发的动态库dll供别人使用; 使用dll只给我传了窗口句柄 在dll需要捕捉窗体改变大小消息 有没有什么办法????????? 我网上查了下 ;钩子可以实现吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
allenjiao
2010-10-04
打赏
举报
回复
HHOOK IEHook; //全域
LRESULT CALLBACK HookIECallBack(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0)
{
CWPSTRUCT* data= (CWPSTRUCT*)lParam;
if (data->message == WM_SIZE)
{
//处理message
}
}
return CallNextHookEx(IEHook, nCode, wParam, lParam);
}
IEHook = ::SetWindowsHookEx(WH_CALLWNDPROC,HookIECallBack,::GetModuleHandle(NULL),0);
//释放
UnhookWindowsHookEx(IEHook);
sunlin7
2010-10-03
打赏
举报
回复
以下几种办法:
1、子类化窗口。使用SetWindowLong(GWL_WNDPROC, ...)将窗口过程改为自己的窗口过程,这其中拦截WM_SIZE消息。
2、进程内消息hook,使用SetWindowsHookEx(WH_CALLWNDPROC,...)来捕获窗口消息,在其中过滤WM_SIZE.
3、(楼下补充)
allenjiao
2010-10-03
打赏
举报
回复
谢谢大家的回复
我试试后 给分
再次感谢
yann2
2010-10-03
打赏
举报
回复
10楼的方法挺不错 简单 易懂
你可以创建个线程来实时监控 如果这个CRect的成员的大小发生变化那不就捕捉到了
tfzxyinhao
2010-10-01
打赏
举报
回复
10楼是正解
Applic
2010-10-01
打赏
举报
回复
这样设计不当吧
zhouyongku
2010-09-30
打赏
举报
回复
[Quote=引用 10 楼 zhouyongku 的回复:]
老大,一个函数就搞定了!!!
::MoveWindow(窗口句柄,位置...)
[/Quote]
上面是改变窗口大小
下面是获取窗口大小
BOOL GetWindowRect( HWND hWnd, LPRECT lpRect);
超Easy
zhouyongku
2010-09-30
打赏
举报
回复
老大,一个函数就搞定了!!!
::MoveWindow(窗口句柄,位置...)
psbeond
2010-09-30
打赏
举报
回复
如果hWnd和你是一个进程,你可以用SetWindowLong(hWnd,GWL_WNDPROC, (LONG)(WndProc));
来子类化窗口。这样就可以处理hWnd的所有消息了。
如果hWnd和你不是一个进程,你必须写个dll,用CreateRemoteThread的方法,把你写的dll注入到对方进程,然后再按上面说的子类化hWnd.
Eleven
2010-09-30
打赏
举报
回复
HOOK WM_SIZE
jacky_qiu
2010-09-30
打赏
举报
回复
钩子可以,特别假如窗口句柄是其他进程的,就非钩子不可啦。
用SetWindowLong替换窗口过程也可以,就是子类化啦。
WNDPROC OLDWNDPROC;
LRESULT CALLBACK MyWndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_SIZE:
{
}
break;
default:
return ::CallWindowProc(OLDWNDPROC, hWnd, message, wParam, lParam);
}
return 0;
}
//创建窗口函数
void CreateWnd()
{
HWND hWnd=CreateWindowEx(WS_EX_TOPMOST,_T("#32770"), _T("Hello"),
WS_OVERLAPPEDWINDOW|WS_VISIBLE,0,0,200,200,NULL,NULL,NULL,NULL);
//把hWnd的默认窗口过程替换为kkWndProc,返回默认函数过程的函数指针
OLDWNDPROC=(WNDPROC)SetWindowLong(hWnd,GWL_WNDPROC, (LONG) (MyWndProc));
}
allenjiao
2010-09-30
打赏
举报
回复
[Quote=引用 1 楼 tiger9991 的回复:]
钩子当然是可以的,你可以尝试下这个
PretranslateMessage
BOOL CtestDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg == WM_SIZE)
{
}
retur……
[/Quote]
我试试这个方法
allenjiao
2010-09-30
打赏
举报
回复
[Quote=引用 3 楼 weiym 的回复:]
2种方案:
1. Subclass窗口
2. 让别人再改变窗口大小Move你的窗口,或是让他通知你
[/Quote]
第二种方法可以实现
这方法不太友好 但有没有更好的方法
QQ_456
2010-09-30
打赏
举报
回复
xuexi
weiym
2010-09-30
打赏
举报
回复
2种方案:
1. Subclass窗口
2. 让别人再改变窗口大小Move你的窗口,或是让他通知你
傻X
2010-09-30
打赏
举报
回复
pMsg.message
傻X
2010-09-30
打赏
举报
回复
钩子当然是可以的,你可以尝试下这个
PretranslateMessage
BOOL CtestDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg == WM_SIZE)
{
}
return CDialog::PreTranslateMessage(pMsg);
}
不知道可以么,推荐楼主尝试啊
SDL入门教程(九):1、在SDL图形
窗口
显示文本
作者:龙飞 最近几篇教程基本上都是参考着Lazy Foo的教程顺序来的。因为我也觉得他的顺序很实用。所不同的是,新的类型我都添加在了之前建立起来的surface类的基础之上。所以,如果你觉得单独看这些教程完全搞不明白,最好从头按照顺序来学习。另外,为了复习C++知识,也为了遵循C++的理念,我有意的将程序风格向C++靠拢。如果你更喜欢C风格,相信你在其他地方可以找到更适合你的教程。1
Windows CE开发常见问题解答(转载)
1.怎样在一个控件获得焦点时打开软键盘?比如一个EditBox获得焦点后,这个时候自动打开软键盘,这样可以方便用户输入——SIPINFO、SHSIPINFO、SIPSETINFO、SIPGETINFO里面有些参数弄不明白 //隐藏输入面板 BOOL LowerSip() { BOOL fRes = FALSE; SIPINFO si; memset( &si, 0,
size
of( si
怎样将CDockablePane里面的控件随着CDockablePane拉伸动态
改变
大小
2019独角兽企业重金招聘Python工程师标准>>> ...
实用!超强VC/MFC 常见问答收集
问 自编浏览器进入一个网页后,点一个链接后系统自动调用用IE打开网页而不是用自身浏览器打开网页。如何让
窗口
用我自己的浏览器打开? 答 http://www.csdn.net/develop/read_article.asp?id=21702 控制新的
窗口
默认情况下,浏览器收到创建新
窗口
请求时,会在IE中打开新的
窗口
。你可以处理NewWindow2事件来在自己指定的窗
WM
应用开发的常见问题解答
WM
应用开发的常见问题解答1.怎样在一个控件获得焦点时打开软键盘?比如一个EditBox获得焦点后,这个时候自动打开软键盘,这样可以方便用户输入——SIPINFO、SHSIPINFO、SIPSETINFO、SIPGETINFO里面有些参数弄不明白 //隐藏输入面板 BOOL LowerSip() { BOOL fRes = FALSE
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章