MFC MenuButton Control
툴박스에서 MFC Menu Button Control 선택하여 대화상자로 드래그드롭 , 속성창에서 ID 기록하고, Caption 부분에는 대표값 기록.

메뉴버튼 우클릭 메뉴 > Add Variable... 클릭하여 name 기록(예 : m_menubtnSampleFreq)

위와같이 추가하면 헤더파일에 변수추가된다. 그 아래 CMenu 도 수동 추가하고 메뉴버튼 클릭시 이벤트 수신처리 위한 BN_CLICKED 이벤트 핸들러 추가한다.
#include "afxmenubutton.h" // 수동추가
...
public:
CMFCMenuButton m_menubtnSampleFreq;// 메뉴 버튼 멤버 변수
CMenu m_menuSampleFreq; // 팝업 메뉴 객체. 수동추가했음.
public:
afx_msg void OnBnClickedMfcmenubtnsamplefreq();
OnInitDialog() 내에서 아래처럼 활용한다.
// 1. 팝업 메뉴 생성
m_menuSampleFreq.CreatePopupMenu();
// 2. 메뉴 항목 추가 (메뉴ID는 프로젝트 내에서 중복되지 않는 값 사용)
m_menuSampleFreq.AppendMenu(MF_STRING, 2001, _T("250Hz"));
m_menuSampleFreq.AppendMenu(MF_STRING, 2002, _T("500Hz"));
m_menuSampleFreq.AppendMenu(MF_STRING, 2003, _T("1000Hz"));
m_menuSampleFreq.AppendMenu(MF_STRING, 2004, _T("2000Hz"));
// 3. MFC Menu Button에 메뉴 연결
m_menubtnSampleFreq.m_hMenu = m_menuSampleFreq.GetSafeHmenu();
// 4. 첫 실행 시 버튼에 표시될 기본 텍스트 설정
m_menubtnSampleFreq.SetWindowText(_T("250Hz"));
// 버튼 우측에 화살표 표시 (콤보박스 느낌 강조)
m_menubtnSampleFreq.m_bOSMenu = FALSE; // MFC 고유 스타일 적용.이 값을 FALSE로 두면 시스템 기본 메뉴 스타일 대신 MFC 고유의 깔끔한 스킨 스타일로 화살표와 메뉴가 렌더링된다.
메뉴버튼 클릭 이벤트 핸들러
void UITDlg::OnBnClickedMfcmenubtnsamplefreq()
{
// CMFCMenuButton이 팝업 메뉴에서 선택된 ID 받기.
UINT nSelectedID = m_menubtnSampleFreq.m_nMenuResult;
// 아무것도 선택하지 않고 메뉴가 닫힌 경우(0 또는 -1) 예외 처리
// 드랍다운 된것을 선택하지 않은 경우 무처리하는것.
if (nSelectedID < 2001 || nSelectedID > 2004)
return;
// 다시 메뉴를 열었을 때를 위한 체크(V) 표시 업데이트
for (UINT id = 2001; id <= 2004; id++)
{
m_menuSampleFreq.CheckMenuItem(id, (id == nSelectedID) ? MF_CHECKED : MF_UNCHECKED);
}
uint16_t sample_freq_sel = Sampling_Frequency;
switch (nSelectedID)
{
case 2001: // 250Hz 처리
sample_freq_sel = 250;
break;
case 2002: // 500Hz 처리
sample_freq_sel = 500;
break;
case 2003: // 1000Hz 처리
sample_freq_sel = 1000;
break;
case 2004: // 2000Hz 처리
sample_freq_sel = 2000;
break;
}
// 현재 설정된 것과 동일 샘플링 이면 기기 송신안해.
if (sample_freq_sel == Sampling_Frequency) return;
SetSampleFrequency(sample_freq_sel);
}
상위정리
Visual Studio , Visual C++ 활용 정리.
Visual Studio C++ 활용 Visual StudioVisual C++ / C#1.설치, 설정 주제 비고. Visual Studio 2010 설치. Visual Studio 2013 (Community)무료 설치. Visaul Studio 2015 (Community)무료 설치.- Visual Studio 2015 버전은 이전 버전대비 급
igotit.tistory.com
첫 등록 : 2026.10.20
최종 수정 :
단축 주소 : https://igotit.tistory.com/6879
'VisualStudio.C++.C#' 카테고리의 다른 글
| VC++ 재배포 가능 패키지 . 통합버전 . 2015~최신 . cmd 설치 방법 (0) | 2026.09.30 |
|---|---|
| WebAssembly . Wasm . 웹어셈블리 (0) | 2026.09.30 |
| 유니티 . Rumtime Inspector & Hierarchy (0) | 2026.09.29 |
| 유니티 . WebXR 활성화 하기 (0) | 2026.09.28 |
| 유니티 . WebGL . 웹에서 실행하기 (0) | 2026.09.22 |
댓글