我正在使用普通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