프로그래밍
👨💻 [MFC] MFC에서 윈도우 창이 최상단에 표시되고 있는지 확인하려면 어떻게 해야 하나요?
밝음의기둥
2024. 12. 20. 23:35
반응형
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
👨💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.
MFC에서 윈도우 창이 최상단에 표시되고 있는지 확인하려면 어떻게 해야 하는지 간략히 알아보았습니다.
질문 >
MFC에서 윈도우 창이 최상단에 표시되고 있는지 확인하려면 어떻게 해야 하나요?
답변 >
MFC에서 윈도우 창이 최상단에 표시되고 있는지를 확인하려면 CWnd 클래스의 GetWindow 및 GetWindowLong 메서드를 활용할 수 있습니다. 윈도우가 최상단에 있는지는 윈도우 스타일에 WS_EX_TOPMOST 확장 스타일이 설정되어 있는지를 확인함으로써 알 수 있습니다.
다음은 MFC에서 이를 확인하는 방법의 예제 코드입니다:
코드 예제
#include <afxwin.h>bool IsWindowTopMost(CWnd* pWnd)
{
if (pWnd == nullptr || !::IsWindow(pWnd->GetSafeHwnd()))
return false;
// HWND 핸들 가져오기
HWND hwnd = pWnd->GetSafeHwnd();
// 윈도우 확장 스타일 가져오기
LONG exStyle = ::GetWindowLong(hwnd, GWL_EXSTYLE);
// WS_EX_TOPMOST 스타일 확인
return (exStyle & WS_EX_TOPMOST) != 0;
}
// 사용 예
void CheckIfWindowIsTopMost()
{
CWnd* pMyWindow = AfxGetMainWnd(); // 메인 창 핸들 가져오기
if (pMyWindow != nullptr)
{
if (IsWindowTopMost(pMyWindow))
{
AfxMessageBox(_T("이 창은 최상단에 있습니다."));
}
else
{
AfxMessageBox(_T("이 창은 최상단에 있지 않습니다."));
}
}
}
설명
- ::GetWindowLong
- 지정된 윈도우의 스타일 정보를 가져옵니다. 여기서 GWL_EXSTYLE을 사용하여 확장 스타일 정보를 확인합니다.
- WS_EX_TOPMOST
- 창이 최상단에 있을 경우 이 스타일 플래그가 활성화됩니다.
- MFC 사용
- CWnd 객체의 GetSafeHwnd를 사용하여 유효한 HWND 핸들을 가져옵니다.
참고
만약 프로그램 내에서 특정 창을 최상단으로 설정하거나 해제하려면 ::SetWindowPos 함수를 사용할 수 있습니다. 예를 들어:
pWnd->SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
위 코드로 창을 최상단에 설정할 수 있으며, &wndNoTopMost를 사용하면 최상단 설정을 해제할 수 있습니다.
🎬 유튜브 채널 🎬
위로그@WiLog
📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기계발을 목적으로 하는 채널 입니다. 📢 오늘도 즐겁게~ 자신을 위한 계발을 함께 해보아요~ d^_^b 📌 1인 게
www.youtube.com
🎬 치지직 채널 🎬
위로그 채널 - CHZZK
지금, 스트리밍이 시작됩니다. 치지직-
chzzk.naver.com
반응형