MFC 응용 프로그램을 개발 중이며 최근에는 Windows 제목 표시 줄에서 아이콘을 제거하는 좋은 방법을 찾고 있지만 닫기 단추는 유지합니다. 두 가지 확실한 해결책은 시스템 메뉴 스타일을 끄거나 도구 창 스타일을 사용하는 것이지만 시스템 메뉴를 비활성화하거나 축소 된 도구 창 제목 표시 줄을 사용하지 않는 것이 좋습니다. 많은 MFC 응용 프로그램이이 기능을 가지고 있으므로 궁금합니다.이 작업을 수행하는 표준 방법이 누락 되었습니까?닫기 버튼이나 시스템 메뉴를 버리지 않고 Windows 제목 표시 줄에서 아이콘을 제거 하시겠습니까?
6
A
답변
2
당신은 사용자가 자막에 오른쪽 클릭 한 경우 감지 WM_NCRBUTTONDOWN
을 사용하여 다음 시스템 메뉴를 표시 할 수 있습니다.
0
시스템 메뉴를 제거한 다음 다른 곳으로 다시 가져 오는 것은 무엇입니까? (예 : 닫기 버튼 등)?
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);
}
4
세트 WS_EX_DLGMODALFRAME
확장 스타일.
2
완전히 투명 한 아이콘을 사용할 수 있습니다.
0
아이콘 제거 델파이 샘플 코드 :
const
WM_ResetIcon = WM_APP - 1;
type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
protected
procedure WMResetIcon(var Message: TMessage); message WM_ResetIcon;
end;
implementation
procedure TForm1.FormShow(Sender: TObject);
begin
PostMessage(Handle, WM_ResetIcon, 0, 0);
end;
procedure TForm1.WMResetIcon(var Message: TMessage);
const
ICON_SMALL = 0;
ICON_BIG = 1;
begin
DestroyIcon(SendMessage(Handle, WM_SETICON, ICON_BIG, 0));
DestroyIcon(SendMessage(Handle, WM_SETICON, ICON_SMALL, 0));
end;
유사한 코드가 MFC를 위해 작동합니다. 기본적으로 올바른 위치에서 NULL에 WM_SETICON이 필요합니다.
관련 문제
- 1. R의 제목 표시 줄에서 아이콘을 변경하는 방법은 무엇입니까?
- 2. JFrame의 제목 표시 줄에서 아이콘 이미지 얻기
- 3. Windows Forms에서 제목 표시 줄 제거
- 4. PyQT 프로그램 제목 표시 줄을 제거 하시겠습니까?
- 5. 안드로이드 제목 표시 줄 제거
- 6. Qt - 메뉴를 아래에서 제거 하시겠습니까?
- 7. 시스템 서비스를 제거 하시겠습니까?
- 8. JDialog의 제목 표시 줄에서 이미지 가져 오기
- 9. 창 제목 표시 줄에 메뉴를 추가하는 방법
- 10. C# 래퍼를 사용하여 작업 표시 줄에서 응용 프로그램을 제거 하시겠습니까?
- 11. MFC 캡션 표시 줄에서 닫기 단추를 제거하는 방법
- 12. Adobe AIR에서 제목 표시 줄 아이콘을 변경하려면 어떻게합니까?
- 13. 주소 표시 줄에서 # 조각 식별자 제거
- 14. 작업 표시 줄에서 XAML 창 제거
- 15. 응용 프로그램에만 시스템 트레이 아이콘을 추가 하시겠습니까?
- 16. WPF에서 시스템 메뉴를 제거하는 방법?
- 17. 제목 변경 닫기 버튼
- 18. windows : 더블 클릭 제목 표시 줄에서 윈도우 최대화 비활성화 및 작업 표시 줄 클릭시 최소화
- 19. BlackBerry app의 제목 표시 줄에 아이콘을 추가하려면 어떻게합니까?
- 20. BlackBerry에서 시스템 대화 닫기
- 21. 제목 표시 줄의 텍스트
- 22. 사용자 정의 제목 표시 줄에서 제목 표시 줄 영역을 채우지 않습니다.
- 23. 시스템 표시 줄에 표시 할 옵션 메뉴를 가져옵니다
- 24. 작업 표시 줄에서 winforms 실행
- 25. 제목 표시 줄을 제거하고 컨트롤 상자를 유지 하시겠습니까?
- 26. CDialog 팝업에서 시스템 메뉴를 표시하는 방법?
- 27. 루비에서 이미지 버튼을 클릭하면서 메뉴를 표시 하시겠습니까?
- 28. 제목 표시 줄에서 마우스 클릭이 수행되었는지 확인하는 방법
- 29. 안드로이드 - 제목 표시 줄에서 응용 프로그램의 이름을 어떻게 비우는가?
- 30. 모든 창의 제목 표시 줄에서 클릭을 감지하는 방법은 무엇입니까?
이 질문에 대한 답변이 있어야합니다. – c00000fd