永发信息网

WndProc函数在什么时候被调用

答案:2  悬赏:0  手机版
解决时间 2021-02-05 01:07
WndProc函数在什么时候被调用
最佳答案
函数调用形式本身没有好坏之分 任何函数代码如果有错误都可能导致软件出问题,甚至导致崩溃 c 里可以使用指针,函数指针 这就使程序可以更灵活 当 函数指针 做为函数的参数,传递给一个被调用函数, 被调用函数就可以通过这个指针调用外部的函数...
全部回答
wndproc在winmain里面没有直接调用,但是它被间接调用。下面的消息循环往往被称为主消息循环,是win32程序驱动的根源,所有的win32程序都会有类似的循环(mfc也不例外,在cwinthread::run函数里面): msg msg; while (getmessage(&msg, null, 0, 0)) { translatemessage(&msg); dispatchmessage(&msg); } 你的wndproc看起来似乎和上面的代码压根没有关系,但是奥妙就在dispatchmessage里面,这个函数的作用和他名字一样,是分发消息的,所有的窗口句柄都对应一个窗口过程函数,每个消息的窗口句柄则是在这个msg结构中保存的,dispatchmessage的源代码虽然没有公开,但是几乎可以肯定,他先调用windows api函数getwindowlongptr加上参数gwlp_wndproc,就可以获得窗口句柄所对应的窗口函数指针,接下来他就调用这个窗口函数。所以窗口函数被这个主消息循环间接调用了。当getmessage获得的msg结构中的窗口句柄是null的时候,dispatchmessage不调用任何窗口过程函数。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一汽马自达地址在什么地方,想过去办事
奥吉亚斯的意思是什么啊?知道的请说下!
总体上,当前国家统计内容以经济统计为主,且
美亚宝铝材地址在什么地方,想过去办事
正青春公寓地址有知道的么?有点事想过去
Winston & Strawn LLP 一个铁盒子,里面
老欧曼车12档变速箱会自动跳档是什么原因
南方眼镜中心在什么地方啊,我要过去处理事情
不小心把杯子碰掉地上了,满地玻璃碎片,家里
是七星级帆船酒店高级还是八星级酋长皇宫酒店
光宇手机城地址有知道的么?有点事想过去
选曹的意思是什么啊?知道的请说下!
15x4x25x6等于多少?
630kva变压器能供多少用户用电?每户按4kw计
谁都有一份放在心底的感情
推荐资讯
请问大家 考研经济学调到c区 哪些学校较好呢
天蝎座男最佳配对
欠了信用卡过澳门可以过关吗?
天地华宇上海华振物流公司地址在什么地方,想
楣栋的意思是什么啊?知道的请说下!
【怎样预防传染病】怎样才能更好的预防传染病
凯达门KTV广场我想知道这个在什么地方
一个天字一个地字两个投案打一成语
感觉坚持不下去了……难道就这样死去了吗……
为什么电脑既删不掉广发证券又重装不了,在控
贵州合辰投资管理有限公司在什么地方啊,我要
广州格蕾斯包装制品有限公司怎么样?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?