kyuseo의 게임 프로그래밍
F10 메뉴 및 시스템 단축키 비활성화 하는 방법 (VC++) 본문
개요.. |
F10 및 시스템 단축키 비활성화 또는 변경하는 방법 (VC++)을 설명해드립니다.
일반적으로 게임이나 메뉴를 사용하지 않는 어플리케이션을 개발할 경우에는 F10 단축키를 사용할 필요가 없습니다.
특히 게임을 개발 할 경우 F10 키를 사용한다면 게임화면이 멈추는 현상이 발생되기 때문에 해당 기능을 비활성화 하는 방법을 설명 드립니다.
방법 |
1. OnSysCommand 를 재정의한다.
2. SC_KEYMENU 기능을 비활성화 한다...
해당 소스코드.. |
/** @class CMainWnd @date 2006/5/3 @author 채경석(kyuseo99@chol.com) @brief */ class CMainWnd : public CWnd, public CLauncher { DECLARE_DYNAMIC(CMainWnd)
public: CMainWnd(); virtual ~CMainWnd();
BOOL Create( LPCSTR szDllFileName, int nClientLauncherBuild
protected: DECLARE_MESSAGE_MAP() virtual BOOL PreCreateWindow(CREATESTRUCT& cs); virtual BOOL PreTranslateMessage(MSG* pMsg); virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); afx_msg void OnDestroy(); afx_msg void OnPaint(); afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
protected: BOOL m_bRelayEvent; ///< 릴레이이벤트를할수있는가? };
void CMainWnd::OnSysCommand(UINT nID, LPARAM lParam) { // X 버튼을WM_CLOSE 로변환한다. if( nID == SC_CLOSE ) { PostMessage( WM_CLOSE ); } else if( nID == SC_KEYMENU ) { } else { CWnd::OnSysCommand(nID, lParam); } }
|