user-interface – 调整大小时Win32 GUI闪烁
发布时间:2020-12-14 01:58:17 所属栏目:Windows 来源:网络整理
导读:我有一个带有选项卡控件的Win32 GUI程序,每个选项卡都有一个列表视图控件.每当调整窗口大小时,都会出现大量闪烁.我尝试过以下的事情: 在主wndproc中处理WM_ERASEBKGND并返回TRUE.没有效果. 过滤掉事件循环中的所有WM_ERASEBKGND消息.没有效果. 在主窗口上设
我有一个带有选项卡控件的Win32 GUI程序,每个选项卡都有一个列表视图控件.每当调整窗口大小时,都会出现大量闪烁.我尝试过以下的事情:
>在主wndproc中处理WM_ERASEBKGND并返回TRUE.没有效果. 这是RegisterClassEx代码: memset(&wcex,sizeof(WNDCLASSEX)); wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = 0; wcex.lpfnWndProc = PhMainWndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = PhInstanceHandle; wcex.hIcon = LoadIcon(PhInstanceHandle,MAKEINTRESOURCE(IDI_PROCESSHACKER)); wcex.hCursor = LoadCursor(NULL,IDC_ARROW); //wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wcex.lpszMenuName = MAKEINTRESOURCE(IDR_MAINWND); wcex.lpszClassName = PhWindowClassName; wcex.hIconSm = (HICON)LoadImage(PhInstanceHandle,MAKEINTRESOURCE(IDI_PROCESSHACKER),IMAGE_ICON,16,0); WM_SIZE处理程序: RECT rect; // Resize the tab control. GetClientRect(PhMainWndHandle,&rect); MoveWindow(TabControlHandle,rect.left,rect.top,rect.right - rect.left,rect.bottom - rect.top,TRUE); // Resize the list view. TabCtrl_AdjustRect(TabControlHandle,FALSE,&rect); MoveWindow(ListViewHandle,TRUE); 风格如下: >主窗口:WS_OVERLAPPEDWINDOW 解决方法
事实证明Z-ordering存在问题 – 在列表视图上调用BringWindowToTop解决了问题.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 用于Windows的python os.mkfifo()
- windows-server-2012-r2 – Windows Server 2012 R2上的APC
- .net – 如何在Windows Azure存储上查询Cloud Blob
- 什么是最好的Windows服务器NoSQL解决方案?
- 重命名Windows中目录中所有文件的简便方法
- regex – 如何在Windows上的findstr中指定空格?
- 如何在系统启动后20分钟运行Windows计划任务?
- windows – Segoe UI替代方案:Segoe UI不支持亚洲语言
- 怎么给win10进行分区?
- qt – 在Windows上使用MinGW编译Poco