7

私は MFC アプリケーションを開発しています。最近、Windows のタイトル バーからアイコンを削除し、閉じるボタンを保持するための適切な方法を探していました。2 つの明白な解決策の候補は、システム メニュー スタイルをオフにするか、ツール ウィンドウ スタイルを使用することですが、システム メニューを無効にしたり、縮小されたツール ウィンドウのタイトル バーを使用したりしないことをお勧めします。多くの MFC アプリケーションにはこの機能があります。

4

6 に答える 6

2

WM_NCRBUTTONDOWNユーザーがキャプションを右クリックしたかどうかを検出し、システムメニューを表示するために使用できます。

于 2008-08-14T01:28:13.567 に答える
2

完全に透明なアイコンを使用できます。

于 2011-06-05T21:04:39.117 に答える
0

システムメニューを削除して、自分で別の場所(たとえば、閉じるボタンの横など)に戻すのはどうですか?

于 2008-08-13T17:12:52.490 に答える
0

アイコンがない場合、ユーザーがシステム メニューにアクセスする唯一の方法は、タイトルバーを右クリックすることです。

そのように考えている場合は、メイン フレームで WM_RBUTTONDOWN を処理し、右クリックがタイトル バー上にあるかどうかを計算できます。

int clickX = GET_X_LPARAM(lParam);
int clickY = GET_Y_LPARAM(lParam);

CRect frameRect;
mainFrame.GetWindowRect(&frameRect);

int titleBarHeight = GetSystemMetrics(SM_CYCAPTION);

if (clickX >= frameRect.left &&
    clickX <= frameRect.right &&
    clickY >= frameRect.top &&
    clickY <= frameRect.top + titleBarHeight)
{
   TrackPopupMenu(m_systemMenu);
}
于 2008-08-14T00:49:13.007 に答える