社区
进程/线程/DLL
帖子详情
win32: 怎么用多线程在屏幕上画65536条线?
huangliluckystar
2009-03-11 02:46:34
如题,在线等。。。。。
...全文
137
7
打赏
收藏
win32: 怎么用多线程在屏幕上画65536条线?
如题,在线等。。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huangliluckystar
2009-03-11
打赏
举报
回复
咋就没人了呢。。。。。。
huangliluckystar
2009-03-11
打赏
举报
回复
我有试过只创建一个线程,可是还是很慢。。。
void DrawGraph(HWND hDlg)
{
HDC hdc = ::GetDC(hDlg);
hThrd = CreateThread(NULL, 0, ThreadFunc, (LPVOID)1, 0, &threadId);
}
DWORD WINAPI ThreadFunc(LPVOID indexWidth)
{
HDC hdc = ::GetDC(g_hWndCommandBar);
for (int indexWidth = 0; indexWidth < 256; indexWidth++)
{
for (int indexHeigh = 0; indexHeigh < 256; indexHeigh++)
{
HBRUSH hbrush = ::CreateSolidBrush(RGB(g_nRed, g_nGreen, g_nBlue));
RECT rect = {g_nWidth, g_nHeigh, g_nWidth + 800.0/256 , g_nHeigh + 600.0 /256 };
::FillRect(hdc, &rect, hbrush);
g_nWidth = indexHeigh * 800.0/256.0;
g_nGreen = (g_nGreen + 1);
::DeleteObject(hbrush);
}
g_nHeigh = indexWidth * 600.0/256.0;
g_nGreen = (g_nGreen + 1);
}
return 0;
}
Chivalry
2009-03-11
打赏
举报
回复
不需要再循环里多次创建县城,创建一个,然后再处理
huangliluckystar
2009-03-11
打赏
举报
回复
void DrawGraph(HWND hDlg)
{
HDC hdc = ::GetDC(hDlg);
for (int indexWidth = 0; indexWidth < 256; indexWidth++)
{
::InitializeCriticalSection(&g_cs);
g_nHeigh = indexWidth * 600.0/256.0;
g_nGreen = (g_nGreen + 1);
hThrd[indexWidth] = CreateThread(NULL, 0, ThreadFunc, (LPVOID)indexWidth, 0, &threadId);
}
for (int indexWidth = 0; indexWidth < 256; indexWidth++)
{
::WaitForSingleObject(hThrd[indexWidth], INFINITE);
::CloseHandle (hThrd[indexWidth]);
}
}
一些初始化没copy下来
DWORD WINAPI ThreadFunc(LPVOID indexWidth)
{
HDC hdc = ::GetDC(g_hWndCommandBar);
//g_nHeigh = indexWidth * 600.0/256.0;
::EnterCriticalSection(&g_cs);
for (int indexHeigh = 0; indexHeigh < 256; indexHeigh++)
{
HBRUSH hbrush = ::CreateSolidBrush(RGB(g_nRed, g_nGreen, g_nBlue));
RECT rect = {g_nWidth, g_nHeigh, g_nWidth + 800.0/256 , g_nHeigh + 600.0 /256 };
::FillRect(hdc, &rect, hbrush);
g_nWidth = indexHeigh * 800.0/256.0;
g_nGreen = (g_nGreen + 1) % 255;
::DeleteObject(hbrush);
}
::LeaveCriticalSection(&g_cs);
return 0;
}
我在做LCD测试,画65536种颜色,可是不用线程会很慢,用线程又达不到效果。。。。不知错在哪
huangliluckystar
2009-03-11
打赏
举报
回复
void DrawGraph(HWND hDlg)
{
HDC hdc = ::GetDC(hDlg);
for (int indexWidth = 0; indexWidth < 256; indexWidth++)
{
::InitializeCriticalSection(&g_cs);
g_nHeigh = indexWidth * 600.0/256.0;
g_nGreen = (g_nGreen + 1);
hThrd[indexWidth] = CreateThread(NULL, 0, ThreadFunc, (LPVOID)indexWidth, 0, &threadId);
}
for (int indexWidth = 0; indexWidth < 256; indexWidth++)
{
::WaitForSingleObject(hThrd[indexWidth], INFINITE);
::CloseHandle (hThrd[indexWidth]);
}
}
一些初始化没copy下来
DWORD WINAPI ThreadFunc(LPVOID indexWidth)
{
HDC hdc = ::GetDC(g_hWndCommandBar);
//g_nHeigh = indexWidth * 600.0/256.0;
::EnterCriticalSection(&g_cs);
for (int indexHeigh = 0; indexHeigh < 256; indexHeigh++)
{
HBRUSH hbrush = ::CreateSolidBrush(RGB(g_nRed, g_nGreen, g_nBlue));
RECT rect = {g_nWidth, g_nHeigh, g_nWidth + 800.0/256 , g_nHeigh + 600.0 /256 };
::FillRect(hdc, &rect, hbrush);
g_nWidth = indexHeigh * 800.0/256.0;
g_nGreen = (g_nGreen + 1) % 255;
::DeleteObject(hbrush);
}
::LeaveCriticalSection(&g_cs);
return 0;
}
我在做LCD测试,画65536种颜色,可是不用线程会很慢,用线程又达不到效果。。。。不知错在哪
Chivalry
2009-03-11
打赏
举报
回复
你有什么问题?
突破技术壁垒:如何在64位Windows上完美运行16位Windows程序?
winevdm是开源项目,解决64位Windows无法运行16位Windows程序的技术难题。其四层架构包括CPU模拟层(支持vm86、HAXM、WHVP)、API转换层(convspec自动生成桥接代码)、系统集成层(文件关联、注册表重定向、句柄映射)和兼容性适配层。项目支持企业迁移、教育研究与数字文化遗产保护,关键技术涵盖分段内存映射、异常处理链、线程安全机制及多方案性能优化。
嵌入式GUI开发实战:emWin架构解析与STM32移植指南
本文系统解析emWin嵌入式GUI库的核心分层架构(应用层、核心层、配置层、驱动层),深入阐述其硬件无关性设计、内存管理策略(静态/动态分配、内存设备、显示缓存)及事件驱动模型。重点详述在STM32F429平台上的完整移植流程,涵盖LTDC/SDRAM初始化、显示驱动适配、配置裁剪与调试要点,并覆盖图形绘制、字体渲染、窗口管理(WM)、动画优化、多图层/缓冲、触摸校准等关键技术模块。
Windows API 函数
《Windows API函数手册》摘要 本文档是Windows平台开发的权威参考手册,全面收录774个核心API函数,涵盖系统管理、进程线程、窗口消息、文件操作、图形处理等12大功能模块。手册采用结构化编排,主要特点包括: 编码规范 详细区分多字节(char)与宽字符(wchar_t)编码体系 提供LPSTR/LPCWSTR等字符串指针类型的完整解析 说明UTF-8与GBK编码转换的实际应用场景 核心功能模块 窗口创建:完整展示从注册类到消息循环的窗口生命周期 文件操作:覆盖CreateFile/ReadF
Windows 11 上安装与配置 Visual C++ 6.0 完整指南
本文详细介绍了在Windows 11系统上安装与配置Visual C++ 6.0的全流程,涵盖兼容性障碍分析(如16位安装程序失效、文件对话框崩溃、调试器不稳定等)、绕过安装限制的MSI方案与兼容性疑难解答、关键补丁(重命名devenv.exe、XP兼容模式、高DPI设置)、IDE内部优化(字体/行号/目录配置)及高级故障排查(注册表修复、外部调试器替代)。强调该方案属兼容性Hack,推荐虚拟机作为长期稳定替代方案。
政府科技管理者在推动区域产业数字化转型过程中,如何利用科创数智大脑进行精准政策匹配?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章