PBS_MARQUEE Progressbar WinApi
PBS_MARQUEE Progressbar WinApi
我试图获得类型PBS_MARQUEE工作的进度条。我可以创建进度条,但是不能让它移动。
如果我发现了这个,但是我不清楚我要做什么:
"事实证明,因为我有进度条作为一个资源,而不是使用CreateWindowEx(..),我不得不使用SetWindowLongPtr(..)来设置这个控件的PBS_MARQUEE样式…"
我这样创建进度条:
hwndPB = CreateWindowEx(0, PROGRESS_CLASS,
(LPSTR)NULL, WS_CHILD | WS_VISIBLE | PBS_MARQUEE ,
rcClient.left,
rcClient.bottom - cyVScroll,
rcClient.right, cyVScroll,
hwnd, (HMENU) 0, NULL, NULL);
然后我试着让它工作:
SetWindowLongPtr(hwndPB,GWL_STYLE,PBS_MARQUEE);
SendMessage(hwndPB,(UINT) PBM_SETMARQUEE,(WPARAM) 1,(LPARAM)NULL );
谢谢,关于
问题是您正在抹掉窗口样式。错误是:
SetWindowLongPtr(hwndPB,GWL_STYLE,PBS_MARQUEE);
这设置了PBS_MARQUEE
样式标志,但删除了所有其他标志,这绝对不是你想要的。
你应该像这样使用按位或:
LONG_PTR style = GetWindowLongPtr(wndPB, GWL_STYLE);
SetWindowLongPtr(hwndPB, GWL_STYLE, style | PBS_MARQUEE);
我对c++类型规则几乎一无所知,所以这段代码可能会有皱纹,但我确信这是你的问题!
事实上,既然你在CreateWindowEx()
的调用中设置了窗口样式,我不明白为什么你需要修改它。
最后一个关于你的选框进度条为什么不能工作的预感。您是否包含了通用控件v6的清单?选框样式仅在通用控件v6及以上版本中支持。
要做到这一点,最简单的方法是在stdafx.h中包含以下内容,例如:#pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"")
我在Visual Studio中将以下代码添加到空白的Win32项目中进行了测试:
HWND hwndPB = CreateWindowEx(
0, PROGRESS_CLASS, (LPCWSTR)NULL,
WS_CHILD | WS_VISIBLE | PBS_MARQUEE,
0, 0, 400, 100,
hWnd, (HMENU) 0, hInst, NULL
);
SendMessage(hwndPB,(UINT) PBM_SETMARQUEE,(WPARAM) 1,(LPARAM)NULL);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
我需要添加manifest pragma来获得v6 comcomtl32,没有pragma就没有marquee。
相关文章:
- WinAPI挂钩鼠标
- 将执行、作业和WinAPI相乘
- 如何在桌面C++上使用 WinApi 画线
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- Winapi:屏幕截图未显示在窗口中
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- Qt with WinAPI MouseProc
- 如何在"SUBSYSTEM:WINDOWS"下显示并输出到Windows(C++ WinApi)上的
- WinAPI 无法创建按钮
- 将 Win32/WinAPI 应用程序移植到 wxWidgets
- WinAPI 检查窗口是否具有常规标题栏
- 如何使用带有矢量的 winapi 读取进程内存从另一个进程读取缓冲区?
- 将Qt集成到现有的VS项目中以取代WinAPI
- __stdcall - WINAPI vs STDMETHODCALLTYPE vs APIENTRY
- 如何将'this'指针传递给C++ WinAPI 线程?
- Winapi-WM_CLOSE的替代方案
- Winapi - SetWindowLongPtr in ShutdownBlockReason创建/销毁JNI本机代码
- WinAPI C++如何从 64 位应用程序加载资源
- winapi 中的哪个功能检查按钮是否正在关闭控制台?
- PBS_MARQUEE Progressbar WinApi