0
진행률 표시 줄이있는 대화 상자가 있습니다. 진행률 표시 줄을 선택 윤곽으로 설정하는 대화 상자에 메서드를 추가하지 않아도됩니다. 나는 다음과 같은 시도 :진행률 막대를 일반에서 선택 윤곽으로 전환
void CDownloader::SetIntermediate(wstring info)
{
SetDlgItemText(IDC_DOWNLOADER_LABEL, info.c_str());
auto style = GetWindowLong(GWL_STYLE);
style &= ~(PBS_SMOOTH | PBS_SMOOTHREVERSE | PBS_VERTICAL);
style |= PBS_MARQUEE;
SetWindowLong(GWL_STYLE, style);
RECT windowRect;
GetWindowRect(&windowRect);
SetWindowPos(HWND_TOP, &windowRect,SWP_FRAMECHANGED);
HWND progress = GetDlgItem(IDC_DOWNLOADER_PROGRESS);
::SendMessage(progress, PBM_SETMARQUEE, TRUE, 100);
}
을하지만 이것은 내가 스타일을 업데이트를 SetWindowPos를 사용하여, 그것과 충돌 할 수 있습니다 제거 스타일을 움직이는하기 위해 윈도우 스타일을 설정 :(
작동하지 않고는 진행에 설정 . MARQUEE
나는 천막하는 디자이너에서 진행 표시 줄을 설정할 수 있지만 정상 혈중 알코올 농도를 전환 할 수 없습니다
스타일 플래그를 변경하기 위해 SetWindowLong()을 사용하면 특히 진도 표시 줄에서 상을받지 못합니다. 간단한 해결 방법은 * 두 개를 만들고 사용자가 보길 원하는 내용에 따라 그 중 하나를 표시하는 것입니다. 아니면 그냥 평범한 DestroyWindow + CreateWindowEx. –
그런 다음 코드를 작성하여 진행률 표시 줄을 정상으로 설정해야합니다. 그것은'PBS_MARQUEE' 스타일을 제거하고,'PBS_SMOOTH'를 다시 설정하는 것입니다. – VTT
진행률 표시 줄 대신 * 대화 상자 *에 진행률 표시 줄 스타일을 설정하고 있습니다. ':: GetWindowLong (progress, GWL_STYLE)'및':: SetWindowLong (progress, GWL_STYLE, style);'이어야합니다. 또한'SetWindowPos'가 필요 없다고 생각합니다. – zett42