怎么去掉自绘菜单的边框,在线等高手

hgy601 2010-06-16 03:36:23
自绘的菜单类为CMenuEx, 现在唯一的问题是去不掉自绘的边框,网上找了份HOOK的资料,太笨了,不会用,如下,求高手指点代码放置正确位置
http://hi.baidu.com/invisiable/blog/item/8fd4902443588b044d088dc8.html


首先要创建一个进程内钩子,一般在App的InitInstance里调用

::SetWindowsHookEx (WH_CALLWNDPROC, WindowsHook, m_hInstance, ::GetCurrentThreadId());

这个是在App的InitInstance最前面放置的吗??
在钩子函数里替换窗口过程函数
WNDPROC oldWndProc = NULL;
RESULT CALLBACK CMenuOwnerDraw::WindowsHook (int code, WPARAM wParam, LPARAM lParam)
{
。。。。。}
上面的代码应该是放在我的CMenuEx中吗,函数声明需要static吗??
然后,在我们自己的窗口过程去掉菜单窗口的边框

LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)

这一段代码正确位置应该在哪里呢??
求高手指点,太笨了,在线等,
...全文
361 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hgy601 2010-06-16
  • 打赏
  • 举报
回复
能否给个示例代码,最简单的能去掉外框的就行,我邮箱80718901@qq.com,万分感谢
菜鸟二号 2010-06-16
  • 打赏
  • 举报
回复
首先要hook得到菜单窗口,然后子类化,处理WM_NCCALCSIZE消息
正如你所说的,那段回调函数代码要放到你的类里面才能反复用,要static的不然报错(不过我用vc6.0静态的报错)例外提示一点哦,还可以使菜单窗口透明哦。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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