首页
社区
课程
招聘
[求助]应用到硬件的执行流程?
发表于: 2013-8-9 14:05 3782

[求助]应用到硬件的执行流程?

2013-8-9 14:05
3782
当我调用API DrawText(hdc,...),显示器会在指定的窗口显示文字。这个流程是怎样一步步完成的?这期间要从用户态过渡到内核态吧?像电影播放,画面一直更新,频繁切入到内核态,会不会有效率问题?当我鼠标点击窗口,鼠标单击事件又是怎样一步步进入窗口消息队列的?
希望大牛能给出解释,或者是给出相关的资料。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 180
活跃值: (80)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
DrawText()是通过Win32.sys调用底层图形设备驱动实现的.
还有就是windows的消息管理机制。网上自己搜。大把资料. 从C SDK入口的都应该知道。
while(GetMessage(&msg, hWnd, 0, 0))
{
           TranslateMessage(&msg);
           DispatchMessage(&msg);
}
windows把捕获到的消息传递给你,你自己可以做相应处理

API的操作最终都需要在内核态来。
API只是一层包装而已.
2013-8-9 19:01
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个消息循环中获取的消息是有谁怎么放进去的?
2013-8-9 21:20
0
雪    币: 180
活跃值: (80)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
消息管理器在有消息后判断是否是你进程的消息。
如果是就发送给你。
所以这里while(GetMessage(&msg, hWnd, 0, 0))
你就能拿到给你的消息.
每个程序都有这个步骤.
2013-8-9 22:50
0
游客
登录 | 注册 方可回帖
返回
//