我正在使用普通C++(不含MFC)来实现应用程序。 我想添加自定义的最小/最大/关闭按钮自定义最小最大关闭按钮实现
下面的代码是我用过的。 对于HTCAPTION和其他与边界相关的定义工作像魅力, 但我无法获得HTMINBUTTON,HTMINBUTTON,HTCLOSE以相同的方式工作。 是否需要为NCHITTEST生效才需要执行其他任何操作?
// Defining min/max/close
if ((p.x > rt.right - 130) && (p.x < rt.right - 104) &&
(p.y > 41) && (p.y < 67))
return HTMINBUTTON;
else if ((p.x > rt.right - 100) && (p.x < rt.right - 74) &&
(p.y > 41) && (p.y < 67))
return HTMAXBUTTON;
else if ((p.x > rt.right - 70) && (p.x < rt.right - 44) &&
(p.y > 41) && (p.y < 67))
return HTCLOSE;
// Defining window border and caption
else if ((p.x > EDGE) && (p.x < rt.right-EDGE) &&
(p.y > EDGE) && (p.y < rt.bottom-EDGE))
return HTCAPTION;
else if (p.x <= EDGE && p.y <= EDGE)
return HTTOPLEFT;
else if (p.x <= EDGE && p.y >= rt.bottom - EDGE)
return HTBOTTOMLEFT;
else if (p.x >= rt.right - EDGE && p.y <= EDGE)
return HTTOPRIGHT;
else if (p.x >= rt.right - EDGE && p.y >= rt.bottom - EDGE)
return HTBOTTOMRIGHT;
else if (p.x <= EDGE)
return HTLEFT;
else if (p.x >= rt.right - EDGE)
return HTRIGHT;
else if (p.y <= EDGE)
return HTTOP;
else if (p.y >= rt.top - EDGE)
return HTBOTTOM;
else
return DefWindowProc(hWnd, message, wParam, lParam);
我认为这篇文章正在做类似于你在做什么:http://www.codeproject.com/Articles/3728/C-does-Shell-Part-3 – gideon 2012-03-04 04:25:23
它看起来如此,但它不是C++源码。它仍然适用?我对C#不熟悉。 – 2012-03-04 06:44:48