掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
自分でシステムメニューを出す方法 (ID:73784)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
BOOL CNoCaptionDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_SYSCHAR && pMsg->wParam == TEXT(' ')) { TRACE("Alt+Space\n"); CRect rc; GetWindowRect(&rc); CMenu* menu = GetSystemMenu(FALSE); //HiliteMenuItem(menu, 0, MF_BYPOSITION | MF_HILITE); menu->SetDefaultItem(SC_CLOSE); UINT id = menu->TrackPopupMenu(TPM_VERPOSANIMATION | TPM_NONOTIFY | TPM_RETURNCMD, rc.left, rc.top, this); PostMessage(WM_SYSCOMMAND, id, MAKELPARAM(rc.left, rc.top)); return TRUE; } return CDialog::PreTranslateMessage(pMsg); } こうすればアニメーションは解決できそうです。 でも最初の項目をキーフォーカスを与えるのは難しいようですね。 あと気になったのは WM_SYSCHAR の wParam は TCHAR なので、 VK_SPACE と比較すると UNICODE の時うまく行かないような気がします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.