需要拦截哪些消息啊?
在哪些消息里面绘制按纽?
在哪些消息里面绘制按纽?
解决方案 »
- 又是DoModal出错,很怪异。。。 在不同的环境下不一样,大侠们。。。
- DLL导出类和资源加载到一个exe程序中。在VS2005里的Debug和Release都可以正常运行,但点击编译出的exe程序,却说缺少MFC80D.DLL
- LOGFONT如何设置字体大小
- 关于关闭"拒绝访问的进程"
- 简单的win32程序的问题
- 对话框条里的按钮为什么是灰的?
- 释放DLL的一个错误
- 怎么在工具栏上添加一个CEdit和CSpinButtonCtrl????
- 为什么新的win32控件不能设置成员变量,有什么技术原因??????
- [求助]关于GETMESSAGE类型HOOK
- 急问,VC7的CHTMLDialog,滚动条无效,该如何解决?
- 简单问题,马上结帖,如何判断我的程序是不是在前面
获取windowsrect大小,调用GetSystemMetrics获取标题栏的高
然后自己刷新就可以添加按钮的
http://www.codeproject.com上有例子我现在做的是,在上面贴按钮图片,来响应按钮消息
收到前者时,你绘制按钮。收到后者时,判断用户是否点在了你的按钮上
{
LRESULT lrst=DefWindowProc(message,wParam,lParam);
if(!::IsWindow(m_hWnd))
return lrst;
if(message==WM_NCPAINT||message==WM_NCACTIVATE||message==WM_NOTIFY)
{
CDC*pWinDC=GetWindowDC();
if(pWinDC)
DrawTitleBar(pWinDC);
ReleaseDC(pWinDC);
}
return lrst;}
LRESULT CTitleBarDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
LRESULT lrst=CDialog::DefWindowProc(message, wParam, lParam);
if (!::IsWindow(m_hWnd))
return lrst;
if (message==WM_MOVE||message==WM_PAINT||message==WM_NCPAINT||
message== WM_NCACTIVATE ||message == WM_NOTIFY)
{
CDC* pWinDC = GetWindowDC();
if (pWinDC)
DrawTitleBar(pWinDC);
ReleaseDC(pWinDC);
}
return lrst;
}